{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 164,
   "id": "16fd1679-a408-433d-a26c-6a2c022da5af",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test set size: 10000\n",
      "Training set size: 50000\n",
      "Number of training samples: 40000\n",
      "Number of cross-validation samples: 10000\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "import torchvision\n",
    "import torchvision.transforms as transforms\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "label_size = 18 # Label size\n",
    "ticklabel_size = 14 # Tick label size\n",
    "    \n",
    "# 定义一个转换以规范化数据\n",
    "transform = transforms.Compose([\n",
    "    transforms.ToTensor()\n",
    "])\n",
    "\n",
    "# 来自 MNIST 的负载测试数据\n",
    "testdata = torchvision.datasets.CIFAR10(root='D:/BaiduNetdiskDownload', train=False, download=False, transform=transform)\n",
    "print(f\"Test set size: {len(testdata)}\")\n",
    "\n",
    "# 从 MNIST 加载训练数据\n",
    "traindata = torchvision.datasets.CIFAR10(root='D:/BaiduNetdiskDownload', train=True, download=False, transform=transform)\n",
    "print(f\"Training set size: {len(traindata)}\")\n",
    "\n",
    "# Rate of trX and cvX\n",
    "rate = 0.8\n",
    "\n",
    "# 创建一个列表来存储每个类的索引 unique（）\n",
    "CIndices = [[] for _ in range(10)]  # 10 classes in MNIST\n",
    "\n",
    "# 填充 CIndices\n",
    "for idx, (_, label) in enumerate(traindata):\n",
    "    CIndices[label].append(idx)\n",
    "\n",
    "# 计算训练集和验证集中每个类的样本数\n",
    "TrainNum_perclass = int(rate * min(len(indices) for indices in CIndices))\n",
    "ValNum_perclass = min(len(indices) for indices in CIndices) - TrainNum_perclass\n",
    "\n",
    "# 创建平衡的训练集和验证集\n",
    "trIndices = []\n",
    "valIndices = []\n",
    "for indices in CIndices:\n",
    "    trIndices.extend(indices[:TrainNum_perclass])\n",
    "    valIndices.extend(indices[TrainNum_perclass:TrainNum_perclass + ValNum_perclass])\n",
    "\n",
    "# 创建 Subset 数据集\n",
    "from torch.utils.data import Subset\n",
    "trX = Subset(traindata, trIndices)\n",
    "cvX = Subset(traindata, valIndices)\n",
    "\n",
    "print(f\"Number of training samples: {len(trX)}\")\n",
    "print(f\"Number of cross-validation samples: {len(cvX)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 220,
   "id": "0e6fc73e-3b0f-4d1c-b292-6cbc17552f44",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "image_channels is 3\n",
      "tensor([1., 0., 0., 0., 0., 0., 0., 0., 0., 0.])\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAJDCAYAAAAsIJ9bAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAjrUlEQVR4nO3da4xcd3k/8N/MzuyuvbbX9jqJjY0TxyYhTkWCIwgFiVyAiJZQiRQFpa2QSNSmRW2likpFouTitC/aItRXJVWbpBKJFFo19EJp0xIuoZA4dkpJwCTEYCc2ztrG9/VeZ+b8X1RYdRKHKc/B3of/5yPlRdbn9z3PnDnnzHePvXajqqqqAAAk0DzbAwAA9EtxAQDSUFwAgDQUFwAgDcUFAEhDcQEA0lBcAIA0FBcAIA3FBQBIQ3GBM+Bv/uZvSqPRKNu2baslr9FolN/+7d+uJet/Z95xxx21Zp7J/Vx99dXl6quvrj0XmF9aZ3sA4P8vjz32WFmzZs3ZHgNISnEBzqi3vOUtP3abqampMjw8XBqNxhmYCMjEbxXBPDE9PV0+8pGPlMsvv7yMjo6W5cuXl5//+Z8v//iP/3jaNX/5l39ZLrroojI0NFQ2btxYHnzwwZdtMz4+Xm699dayZs2aMjg4WNatW1fuvPPO0ul0apv9wIED5cMf/nDZuHFjWbRoUTn33HPLtddeW7761a++bNuX/lbRj34b7d///d/LzTffXM4555yycOHCMjMzU+64447SaDTKN77xjXLDDTeUJUuWlNHR0fJrv/Zr5cCBAz92rjvvvLNceeWVZfny5WXJkiVl06ZN5Z577ikv/bdlL7jggnL99deXf/u3fyubNm0qCxYsKK9//evLvffe+7LMM3E8gdPzxAXmiZmZmXLo0KHy+7//+2X16tVldna2fOELXyg33HBDue+++8oHP/jBU7b/p3/6p/KlL32pbN68uYyMjJS/+Iu/KDfddFNptVrl/e9/fynlfz5k3/zmN5dms1luu+22sn79+vLYY4+VP/qjPyq7du0q991336vOdMEFF5RSStm1a9erbnfo0KFSSim33357WblyZZmYmCif/exny9VXX10eeeSRvv7syc0331ze8573lE9/+tPlxIkTpd1un/y1973vfeXGG28sv/mbv1m+/e1vl49//ONl+/btZcuWLads91K7du0qt956a1m7dm0ppZTHH3+8/M7v/E75wQ9+UG677bZTtv3mN79ZPvKRj5SPfvSj5bzzzit//dd/XW655ZayYcOG8va3v72UEj+eQA0q4Kfuvvvuq0op1datW/te0+l0qrm5ueqWW26p3vjGN57ya6WUasGCBdX4+Pgp27/+9a+vNmzYcPJrt956a7Vo0aLq+eefP2X9Jz7xiaqUUn37298+JfP2228/Zbv169dX69ev73vml87+jne8o3rf+973stn/935+dGw++MEPvizn9ttvr0op1e/93u+d8vUHHnigKqVU999//8mvXXXVVdVVV1112pm63W41NzdXbd68uRobG6t6vd7JXzv//POr4eHhU47T1NRUtXz58urWW289+bX/y/EEfjr8VhHMI3/3d39X3va2t5VFixaVVqtV2u12ueeee8p3vvOdl237jne8o5x33nkn/39gYKB84AMfKDt27Ch79uwppZTyuc99rlxzzTXlNa95Tel0Oif/+4Vf+IVSSilf+cpXXnWeHTt2lB07dvQ1+9133102bdpUhoeHT87+yCOPvOLsr+SXf/mXT/trv/qrv3rK/994442l1WqVL33pS6+a+cUvfrG8853vLKOjo2VgYKC02+1y2223lYMHD5b9+/efsu3ll19+8slMKaUMDw+Xiy66qDz//PMnvxY9nkCc4gLzxEMPPVRuvPHGsnr16nL//feXxx57rGzdurXcfPPNZXp6+mXbr1y58rRfO3jwYCmllH379pV//ud/Lu12+5T/Lr300lJKKT/84Q9rmf2Tn/xk+a3f+q1y5ZVXlr//+78vjz/+eNm6dWt597vfXaampvrKWLVq1Wl/7aWvtdVqlbGxsZOv85U88cQT5brrriullPJXf/VX5Wtf+1rZunVr+djHPlZKKS+ba2xs7GUZQ0NDp2x3po4ncHr+jAvME/fff39Zt25d+cxnPnPKT9PMzMy84vbj4+On/dqPPoRXrFhR3vCGN5Q//uM/fsWM17zmNdGxSyn/M/vVV19dPvWpT53y9ePHj/ed8Wo/QTQ+Pl5Wr1598v87nU45ePDgK5aNH3nwwQdLu90un/vc58rw8PDJr//DP/xD3zO91Jk6nsDpKS4wTzQajTI4OHjKB/j4+Phpf6rokUceKfv27Tv520Xdbrd85jOfKevXrz/596Rcf/315fOf/3xZv359WbZs2U919qGhoVO+9tRTT5XHHnusvPa1rw3nP/DAA+WKK644+f9/+7d/Wzqdzqv+od9Go1FarVYZGBg4+bWpqany6U9/+iee40wdT+D0FBc4g774xS++4k/o/OIv/mK5/vrry0MPPVQ+/OEPl/e///1l9+7d5a677iqrVq0qzz333MvWrFixolx77bXl4x//+MmfKnrmmWdO+ZHozZs3l//4j/8ob33rW8vv/u7vlosvvrhMT0+XXbt2lc9//vPl7rvvftW/DG7Dhg2llPJj/5zL9ddfX+66665y++23l6uuuqo8++yzZfPmzWXdunW1/JjwQw89VFqtVnnXu9518qeKLrvssnLjjTeeds173vOe8slPfrL8yq/8SvmN3/iNcvDgwfKJT3ziZQXr/yJ6PIE4xQXOoD/4gz94xa/v3LmzfOhDHyr79+8vd999d7n33nvLhRdeWD760Y+WPXv2lDvvvPNla37pl36pXHrppeUP//APywsvvFDWr19fHnjggfKBD3zg5DarVq0q27ZtK3fddVf5sz/7s7Jnz56yePHism7duvLud7/7xz416Ld0fOxjHyuTk5PlnnvuKX/6p39aNm7cWO6+++7y2c9+tnz5y1/uK+PVPPTQQ+WOO+4on/rUp0qj0Sjvfe97y5//+Z+XwcHB06659tpry7333lv+5E/+pLz3ve8tq1evLr/+679ezj333HLLLbf8RHNEjycQ16iql/xNTADzxB133FHuvPPOcuDAgbJixYqzPQ4wD/ipIgAgDcUFAEjDbxUBAGl44gIApKG4AABpKC4AQBqKCwCQRt9/Ad1L/w2Sn0S32w1nHDlyJLT+dP/uy/9FHa+jjj8T3WrF//7AOl7L5ORkOCN6POo4FnWo432tI6PZjH9PEs3o9XpnfYa6zJefYfjf/3zBTyp6TF/t35Q6kxl1XPN1ZNTxWqLXyny579RxzW/evPnHbjM/7goAAH1QXACANBQXACANxQUASENxAQDSUFwAgDQUFwAgDcUFAEhDcQEA0lBcAIA0FBcAIA3FBQBIQ3EBANJQXACANBQXACANxQUASKPV74bdbje8s+np6XBGq9X3yK9oZGQkPENVVeGMiYmJcMbk5GQ4o9frhTMajcZZz6jjPanDfDgWdYke02Yz/n3Rz8qxKGX+nBvRjPnyntRx76rjc20+qOM9qeN4nqn7sCcu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",
      "text/plain": [
       "<Figure size 700x700 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "batch_size = 72\n",
    "\n",
    "def one_hot_collate(batch):\n",
    "    data = torch.stack([item[0] for item in batch])\n",
    "    labels = torch.tensor([item[1] for item in batch])\n",
    "    one_hot_labels = torch.zeros(labels.size(0), 10)  # 10 classes in MNIST 【0，1，0，0】\n",
    "    one_hot_labels.scatter_(1, labels.unsqueeze(1), 1)\n",
    "    return data, one_hot_labels\n",
    "\n",
    "trLoader = torch.utils.data.DataLoader(trX, batch_size=batch_size, shuffle=True, num_workers=0, collate_fn=one_hot_collate)\n",
    "cvLoader = torch.utils.data.DataLoader(cvX, batch_size=batch_size, shuffle=False, num_workers=0, collate_fn=one_hot_collate)\n",
    "teLoader = torch.utils.data.DataLoader(testdata, batch_size=batch_size, shuffle=False, num_workers=0, collate_fn=one_hot_collate)\n",
    "\n",
    "# 获取一批训练数据\n",
    "dataiter = iter(trLoader)\n",
    "data, labels = next(dataiter)\n",
    "\n",
    "image_channels = data[0].numpy().shape[0]\n",
    "print(f'image_channels is {image_channels}')\n",
    "print(labels[0,:])\n",
    "\n",
    "# CIFAR-10 的标签文本\n",
    "label_text = ['airplane', 'automobile', 'bird', 'cat', 'deer', \n",
    "              'dog', 'frog', 'horse', 'ship', 'truck']\n",
    "\n",
    "# 从批次中绘制一张图像\n",
    "plt.figure(figsize=(7, 7))\n",
    "# 修改 imshow 行以正确处理 RGB 图像\n",
    "plt.imshow(data[0].permute(1, 2, 0).numpy())# 从 （3,32,32） 重新排列为 （32,32,3）\n",
    "plt.title(f'Label: {label_text[labels[0].argmax().item()]}')\n",
    "plt.axis('off')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 222,
   "id": "296f0535-af9f-4eac-8425-4f1dec611b44",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ResNet(\n",
      "  (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)\n",
      "  (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "  (relu): ReLU(inplace=True)\n",
      "  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n",
      "  (layer1): Sequential(\n",
      "    (0): BasicBlock(\n",
      "      (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    )\n",
      "    (1): BasicBlock(\n",
      "      (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    )\n",
      "  )\n",
      "  (layer2): Sequential(\n",
      "    (0): BasicBlock(\n",
      "      (conv1): Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (downsample): Sequential(\n",
      "        (0): Conv2d(64, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
      "        (1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      )\n",
      "    )\n",
      "    (1): BasicBlock(\n",
      "      (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    )\n",
      "  )\n",
      "  (layer3): Sequential(\n",
      "    (0): BasicBlock(\n",
      "      (conv1): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (downsample): Sequential(\n",
      "        (0): Conv2d(128, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
      "        (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      )\n",
      "    )\n",
      "    (1): BasicBlock(\n",
      "      (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    )\n",
      "  )\n",
      "  (layer4): Sequential(\n",
      "    (0): BasicBlock(\n",
      "      (conv1): Conv2d(256, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (downsample): Sequential(\n",
      "        (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
      "        (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      )\n",
      "    )\n",
      "    (1): BasicBlock(\n",
      "      (conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    )\n",
      "  )\n",
      "  (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))\n",
      "  (fc): Linear(in_features=512, out_features=1000, bias=True)\n",
      ")\n",
      "ResNet(\n",
      "  (conv1): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
      "  (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "  (relu): ReLU(inplace=True)\n",
      "  (maxpool): Identity()\n",
      "  (layer1): Sequential(\n",
      "    (0): BasicBlock(\n",
      "      (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    )\n",
      "    (1): BasicBlock(\n",
      "      (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    )\n",
      "  )\n",
      "  (layer2): Sequential(\n",
      "    (0): BasicBlock(\n",
      "      (conv1): Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (downsample): Sequential(\n",
      "        (0): Conv2d(64, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
      "        (1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      )\n",
      "    )\n",
      "    (1): BasicBlock(\n",
      "      (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    )\n",
      "  )\n",
      "  (layer3): Sequential(\n",
      "    (0): BasicBlock(\n",
      "      (conv1): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (downsample): Sequential(\n",
      "        (0): Conv2d(128, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
      "        (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      )\n",
      "    )\n",
      "    (1): BasicBlock(\n",
      "      (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    )\n",
      "  )\n",
      "  (layer4): Sequential(\n",
      "    (0): BasicBlock(\n",
      "      (conv1): Conv2d(256, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (downsample): Sequential(\n",
      "        (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
      "        (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      )\n",
      "    )\n",
      "    (1): BasicBlock(\n",
      "      (conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "      (relu): ReLU(inplace=True)\n",
      "      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
      "      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    )\n",
      "  )\n",
      "  (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))\n",
      "  (fc): Linear(in_features=512, out_features=10, bias=True)\n",
      ")\n"
     ]
    }
   ],
   "source": [
    "import torch.nn as nn\n",
    "\n",
    "# 1. 加载预训练模型\n",
    "ResNetmodel = torchvision.models.resnet18(pretrained=True)\n",
    "print(ResNetmodel)\n",
    "# 2. 修改输入层 (因为 MNIST 是单通道图像)\n",
    "ResNetmodel.conv1 = nn.Conv2d(3, 64, kernel_size=3, stride=1, padding=1)\n",
    "\n",
    "# 3. 移除第一层Maxpooling避免参数过早消失\n",
    "ResNetmodel.maxpool = nn.Identity() # nn.Conv2d(64, 64, 1, 1, 1)\n",
    "\n",
    "# 4. 修改输出层 (根据任务的类别数)\n",
    "ResNetmodel.fc = nn.Linear(ResNetmodel.fc.in_features, 10)  # 10为MNIST的类别数\n",
    "\n",
    "# 打印模型结构\n",
    "print(ResNetmodel)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 224,
   "id": "afdcc496-d803-4ca7-a694-82933d15d7c9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/6, Training Loss: 2.7533\n",
      "Epoch 1/6, Training Loss: 2.1976\n",
      "Epoch 1/6, Training Loss: 2.0069\n",
      "Epoch 1/6, Training Loss: 1.8147\n",
      "Epoch 1/6, Training Loss: 1.8680\n",
      "Epoch 1/6, Training Loss: 2.0114\n",
      "Epoch 1/6, Training Loss: 1.5898\n",
      "Epoch 1/6, Training Loss: 1.8565\n",
      "Epoch 1/6, Training Loss: 2.0264\n",
      "Epoch 1/6, Training Loss: 2.1556\n",
      "Epoch 1/6, Training Loss: 2.0476\n",
      "Epoch 1/6, Training Loss: 1.5842\n",
      "Epoch 1/6, Training Loss: 1.5578\n",
      "Epoch 1/6, Training Loss: 1.9630\n",
      "Epoch 1/6, Training Loss: 1.4664\n",
      "Epoch 1/6, Training Loss: 1.6866\n",
      "Epoch 1/6, Training Loss: 1.4833\n",
      "Epoch 1/6, Training Loss: 1.3827\n",
      "Epoch 1/6, Training Loss: 1.4755\n",
      "Epoch 1/6, Training Loss: 1.6200\n",
      "Epoch 1/6, Training Loss: 1.4461\n",
      "Epoch 1/6, Training Loss: 1.3514\n",
      "Epoch 1/6, Training Loss: 1.4639\n",
      "Epoch 1/6, Training Loss: 1.7595\n",
      "Epoch 1/6, Training Loss: 1.4920\n",
      "Epoch 1/6, Training Loss: 1.3814\n",
      "Epoch 1/6, Training Loss: 1.6355\n",
      "Epoch 1/6, Training Loss: 1.2333\n",
      "Epoch 1/6, Training Loss: 1.3434\n",
      "Epoch 1/6, Training Loss: 1.2360\n",
      "Epoch 1/6, Training Loss: 1.3056\n",
      "Epoch 1/6, Training Loss: 1.5468\n",
      "Epoch 1/6, Training Loss: 1.6968\n",
      "Epoch 1/6, Training Loss: 1.1902\n",
      "Epoch 1/6, Training Loss: 1.6095\n",
      "Epoch 1/6, Training Loss: 1.2657\n",
      "Epoch 1/6, Training Loss: 1.4817\n",
      "Epoch 1/6, Training Loss: 1.1408\n",
      "Epoch 1/6, Training Loss: 1.2002\n",
      "Epoch 1/6, Training Loss: 1.1035\n",
      "Epoch 1/6, Training Loss: 1.6725\n",
      "Epoch 1/6, Training Loss: 1.1477\n",
      "Epoch 1/6, Training Loss: 1.3617\n",
      "Epoch 1/6, Training Loss: 1.0489\n",
      "Epoch 1/6, Training Loss: 1.1941\n",
      "Epoch 1/6, Training Loss: 1.4885\n",
      "Epoch 1/6, Training Loss: 1.5036\n",
      "Epoch 1/6, Training Loss: 1.1514\n",
      "Epoch 1/6, Training Loss: 1.2415\n",
      "Epoch 1/6, Training Loss: 1.0644\n",
      "Epoch 1/6, Training Loss: 0.8642\n",
      "Epoch 1/6, Training Loss: 1.1459\n",
      "Epoch 1/6, Training Loss: 1.1479\n",
      "Epoch 1/6, Training Loss: 1.0411\n",
      "Epoch 1/6, Training Loss: 1.1210\n",
      "Epoch 1/6, Training Loss: 1.2207\n",
      "Epoch 1/6, Training Loss: 1.3525\n",
      "Epoch 1/6, Training Loss: 1.3325\n",
      "Epoch 1/6, Training Loss: 1.0821\n",
      "Epoch 1/6, Training Loss: 1.1912\n",
      "Epoch 1/6, Training Loss: 0.8006\n",
      "Epoch 1/6, Training Loss: 1.0762\n",
      "Epoch 1/6, Training Loss: 0.8504\n",
      "Epoch 1/6, Training Loss: 1.0438\n",
      "Epoch 1/6, Training Loss: 1.3456\n",
      "Epoch 1/6, Training Loss: 1.1007\n",
      "Epoch 1/6, Training Loss: 0.6757\n",
      "Epoch 1/6, Training Loss: 0.8449\n",
      "Epoch 1/6, Training Loss: 1.0650\n",
      "Epoch 1/6, Training Loss: 1.0522\n",
      "Epoch 1/6, Training Loss: 1.0380\n",
      "Epoch 1/6, Training Loss: 0.9575\n",
      "Epoch 1/6, Training Loss: 0.9041\n",
      "Epoch 1/6, Training Loss: 0.7371\n",
      "Epoch 1/6, Training Loss: 0.7783\n",
      "Epoch 1/6, Training Loss: 0.8067\n",
      "Epoch 1/6, Training Loss: 0.7814\n",
      "Epoch 1/6, Training Loss: 0.9346\n",
      "Epoch 1/6, Training Loss: 0.8109\n",
      "Epoch 1/6, Training Loss: 1.0807\n",
      "Epoch 1/6, Training Loss: 0.9550\n",
      "Epoch 1/6, Training Loss: 1.1613\n",
      "Epoch 1/6, Training Loss: 1.0824\n",
      "Epoch 1/6, Training Loss: 0.9394\n",
      "Epoch 1/6, Training Loss: 1.0323\n",
      "Epoch 1/6, Training Loss: 1.0739\n",
      "Epoch 1/6, Training Loss: 0.6825\n",
      "Epoch 1/6, Training Loss: 0.9153\n",
      "Epoch 1/6, Training Loss: 0.7944\n",
      "Epoch 1/6, Training Loss: 0.7770\n",
      "Epoch 1/6, Training Loss: 1.3079\n",
      "Epoch 1/6, Training Loss: 0.9564\n",
      "Epoch 1/6, Training Loss: 1.0260\n",
      "Epoch 1/6, Training Loss: 0.6713\n",
      "Epoch 1/6, Training Loss: 0.7257\n",
      "Epoch 1/6, Training Loss: 1.0321\n",
      "Epoch 1/6, Training Loss: 0.9260\n",
      "Epoch 1/6, Training Loss: 1.0573\n",
      "Epoch 1/6, Training Loss: 0.7380\n",
      "Epoch 1/6, Training Loss: 0.9657\n",
      "Epoch 1/6, Training Loss: 0.7097\n",
      "Epoch 1/6, Training Loss: 0.7489\n",
      "Epoch 1/6, Training Loss: 0.8181\n",
      "Epoch 1/6, Training Loss: 0.8258\n",
      "Epoch 1/6, Training Loss: 0.7204\n",
      "Epoch 1/6, Training Loss: 0.9098\n",
      "Epoch 1/6, Training Loss: 0.8327\n",
      "Epoch 1/6, Training Loss: 0.8161\n",
      "Epoch 1/6, Training Loss: 0.8876\n",
      "Epoch 1/6, Training Loss: 0.9097\n",
      "Epoch 1/6, Training Loss: 1.1335\n",
      "Epoch 1/6, Training Loss: 0.7478\n",
      "Epoch 1/6, Training Loss: 0.9072\n",
      "Epoch 1/6, Training Loss: 0.8698\n",
      "Epoch 1/6, Training Loss: 0.9256\n",
      "Epoch 1/6, Training Loss: 0.7593\n",
      "Epoch 1/6, Training Loss: 1.0526\n",
      "Epoch 1/6, Training Loss: 0.7105\n",
      "Epoch 1/6, Training Loss: 0.8534\n",
      "Epoch 1/6, Training Loss: 0.9110\n",
      "Epoch 1/6, Training Loss: 0.7337\n",
      "Epoch 1/6, Training Loss: 0.7453\n",
      "Epoch 1/6, Training Loss: 1.1162\n",
      "Epoch 1/6, Training Loss: 0.5862\n",
      "Epoch 1/6, Training Loss: 0.8063\n",
      "Epoch 1/6, Training Loss: 0.7133\n",
      "Epoch 1/6, Training Loss: 0.8549\n",
      "Epoch 1/6, Training Loss: 1.0268\n",
      "Epoch 1/6, Training Loss: 0.8346\n",
      "Epoch 1/6, Training Loss: 1.0182\n",
      "Epoch 1/6, Training Loss: 0.7039\n",
      "Epoch 1/6, Training Loss: 0.8831\n",
      "Epoch 1/6, Training Loss: 0.7835\n",
      "Epoch 1/6, Training Loss: 0.8474\n",
      "Epoch 1/6, Training Loss: 0.8432\n",
      "Epoch 1/6, Training Loss: 0.9500\n",
      "Epoch 1/6, Training Loss: 0.8631\n",
      "Epoch 1/6, Training Loss: 0.9790\n",
      "Epoch 1/6, Training Loss: 0.7087\n",
      "Epoch 1/6, Training Loss: 0.6079\n",
      "Epoch 1/6, Training Loss: 0.8250\n",
      "Epoch 1/6, Training Loss: 0.8521\n",
      "Epoch 1/6, Training Loss: 0.7058\n",
      "Epoch 1/6, Training Loss: 0.6446\n",
      "Epoch 1/6, Training Loss: 1.1338\n",
      "Epoch 1/6, Training Loss: 0.9542\n",
      "Epoch 1/6, Training Loss: 0.8862\n",
      "Epoch 1/6, Training Loss: 0.9148\n",
      "Epoch 1/6, Training Loss: 0.8185\n",
      "Epoch 1/6, Training Loss: 1.0919\n",
      "Epoch 1/6, Training Loss: 0.6901\n",
      "Epoch 1/6, Training Loss: 0.6696\n",
      "Epoch 1/6, Training Loss: 0.6961\n",
      "Epoch 1/6, Training Loss: 0.5893\n",
      "Epoch 1/6, Training Loss: 0.6249\n",
      "Epoch 1/6, Training Loss: 0.6984\n",
      "Epoch 1/6, Training Loss: 0.5845\n",
      "Epoch 1/6, Training Loss: 0.8631\n",
      "Epoch 1/6, Training Loss: 0.6264\n",
      "Epoch 1/6, Training Loss: 0.9162\n",
      "Epoch 1/6, Training Loss: 1.1011\n",
      "Epoch 1/6, Training Loss: 0.7282\n",
      "Epoch 1/6, Training Loss: 0.6732\n",
      "Epoch 1/6, Training Loss: 0.7648\n",
      "Epoch 1/6, Training Loss: 0.8420\n",
      "Epoch 1/6, Training Loss: 0.9295\n",
      "Epoch 1/6, Training Loss: 0.5772\n",
      "Epoch 1/6, Training Loss: 0.9169\n",
      "Epoch 1/6, Training Loss: 0.7729\n",
      "Epoch 1/6, Training Loss: 0.6271\n",
      "Epoch 1/6, Training Loss: 0.8189\n",
      "Epoch 1/6, Training Loss: 0.7881\n",
      "Epoch 1/6, Training Loss: 0.6467\n",
      "Epoch 1/6, Training Loss: 0.7042\n",
      "Epoch 1/6, Training Loss: 0.9641\n",
      "Epoch 1/6, Training Loss: 0.7335\n",
      "Epoch 1/6, Training Loss: 0.9876\n",
      "Epoch 1/6, Training Loss: 0.9868\n",
      "Epoch 1/6, Training Loss: 0.6779\n",
      "Epoch 1/6, Training Loss: 0.8523\n",
      "Epoch 1/6, Training Loss: 0.7600\n",
      "Epoch 1/6, Training Loss: 0.8173\n",
      "Epoch 1/6, Training Loss: 0.7733\n",
      "Epoch 1/6, Training Loss: 0.5782\n",
      "Epoch 1/6, Training Loss: 0.9008\n",
      "Epoch 1/6, Training Loss: 0.7901\n",
      "Epoch 1/6, Training Loss: 0.9450\n",
      "Epoch 1/6, Training Loss: 0.7603\n",
      "Epoch 1/6, Training Loss: 0.7731\n",
      "Epoch 1/6, Training Loss: 0.8558\n",
      "Epoch 1/6, Training Loss: 0.6823\n",
      "Epoch 1/6, Training Loss: 0.8778\n",
      "Epoch 1/6, Training Loss: 0.6616\n",
      "Epoch 1/6, Training Loss: 0.8055\n",
      "Epoch 1/6, Training Loss: 0.8836\n",
      "Epoch 1/6, Training Loss: 0.6230\n",
      "Epoch 1/6, Training Loss: 0.5803\n",
      "Epoch 1/6, Training Loss: 0.6687\n",
      "Epoch 1/6, Training Loss: 0.6593\n",
      "Epoch 1/6, Training Loss: 0.9458\n",
      "Epoch 1/6, Training Loss: 0.6519\n",
      "Epoch 1/6, Training Loss: 0.7219\n",
      "Epoch 1/6, Training Loss: 0.9620\n",
      "Epoch 1/6, Training Loss: 0.8265\n",
      "Epoch 1/6, Training Loss: 0.6358\n",
      "Epoch 1/6, Training Loss: 0.9549\n",
      "Epoch 1/6, Training Loss: 0.7385\n",
      "Epoch 1/6, Training Loss: 0.7057\n",
      "Epoch 1/6, Training Loss: 0.8579\n",
      "Epoch 1/6, Training Loss: 1.0125\n",
      "Epoch 1/6, Training Loss: 0.7701\n",
      "Epoch 1/6, Training Loss: 0.9067\n",
      "Epoch 1/6, Training Loss: 0.5188\n",
      "Epoch 1/6, Training Loss: 0.9119\n",
      "Epoch 1/6, Training Loss: 0.8536\n",
      "Epoch 1/6, Training Loss: 0.7778\n",
      "Epoch 1/6, Training Loss: 0.5315\n",
      "Epoch 1/6, Training Loss: 0.8323\n",
      "Epoch 1/6, Training Loss: 0.7900\n",
      "Epoch 1/6, Training Loss: 0.7204\n",
      "Epoch 1/6, Training Loss: 0.7099\n",
      "Epoch 1/6, Training Loss: 0.9155\n",
      "Epoch 1/6, Training Loss: 0.8088\n",
      "Epoch 1/6, Training Loss: 1.0738\n",
      "Epoch 1/6, Training Loss: 1.0389\n",
      "Epoch 1/6, Training Loss: 0.7280\n",
      "Epoch 1/6, Training Loss: 0.7141\n",
      "Epoch 1/6, Training Loss: 0.7975\n",
      "Epoch 1/6, Training Loss: 0.6247\n",
      "Epoch 1/6, Training Loss: 0.6277\n",
      "Epoch 1/6, Training Loss: 0.7585\n",
      "Epoch 1/6, Training Loss: 0.5503\n",
      "Epoch 1/6, Training Loss: 0.9353\n",
      "Epoch 1/6, Training Loss: 0.5577\n",
      "Epoch 1/6, Training Loss: 0.6867\n",
      "Epoch 1/6, Training Loss: 0.5770\n",
      "Epoch 1/6, Training Loss: 0.6393\n",
      "Epoch 1/6, Training Loss: 0.8060\n",
      "Epoch 1/6, Training Loss: 1.0033\n",
      "Epoch 1/6, Training Loss: 0.9854\n",
      "Epoch 1/6, Training Loss: 0.8216\n",
      "Epoch 1/6, Training Loss: 0.6506\n",
      "Epoch 1/6, Training Loss: 0.6195\n",
      "Epoch 1/6, Training Loss: 0.6019\n",
      "Epoch 1/6, Training Loss: 0.8097\n",
      "Epoch 1/6, Training Loss: 0.8253\n",
      "Epoch 1/6, Training Loss: 0.8222\n",
      "Epoch 1/6, Training Loss: 0.7995\n",
      "Epoch 1/6, Training Loss: 0.9285\n",
      "Epoch 1/6, Training Loss: 1.0765\n",
      "Epoch 1/6, Training Loss: 0.5356\n",
      "Epoch 1/6, Training Loss: 0.8387\n",
      "Epoch 1/6, Training Loss: 0.7336\n",
      "Epoch 1/6, Training Loss: 0.7795\n",
      "Epoch 1/6, Training Loss: 0.7922\n",
      "Epoch 1/6, Training Loss: 0.8390\n",
      "Epoch 1/6, Training Loss: 0.7464\n",
      "Epoch 1/6, Training Loss: 0.8858\n",
      "Epoch 1/6, Training Loss: 0.5146\n",
      "Epoch 1/6, Training Loss: 0.7146\n",
      "Epoch 1/6, Training Loss: 0.5719\n",
      "Epoch 1/6, Training Loss: 0.7583\n",
      "Epoch 1/6, Training Loss: 0.5939\n",
      "Epoch 1/6, Training Loss: 0.7015\n",
      "Epoch 1/6, Training Loss: 0.6474\n",
      "Epoch 1/6, Training Loss: 1.0718\n",
      "Epoch 1/6, Training Loss: 0.7318\n",
      "Epoch 1/6, Training Loss: 0.3965\n",
      "Epoch 1/6, Training Loss: 0.8375\n",
      "Epoch 1/6, Training Loss: 0.6663\n",
      "Epoch 1/6, Training Loss: 0.4920\n",
      "Epoch 1/6, Training Loss: 0.8910\n",
      "Epoch 1/6, Training Loss: 0.8559\n",
      "Epoch 1/6, Training Loss: 0.9414\n",
      "Epoch 1/6, Training Loss: 0.8089\n",
      "Epoch 1/6, Training Loss: 0.6923\n",
      "Epoch 1/6, Training Loss: 0.9205\n",
      "Epoch 1/6, Training Loss: 0.8114\n",
      "Epoch 1/6, Training Loss: 0.5168\n",
      "Epoch 1/6, Training Loss: 0.7902\n",
      "Epoch 1/6, Training Loss: 0.6247\n",
      "Epoch 1/6, Training Loss: 0.6306\n",
      "Epoch 1/6, Training Loss: 0.7913\n",
      "Epoch 1/6, Training Loss: 0.6828\n",
      "Epoch 1/6, Training Loss: 0.7407\n",
      "Epoch 1/6, Training Loss: 0.7084\n",
      "Epoch 1/6, Training Loss: 0.6619\n",
      "Epoch 1/6, Training Loss: 0.6905\n",
      "Epoch 1/6, Training Loss: 0.6655\n",
      "Epoch 1/6, Training Loss: 0.4566\n",
      "Epoch 1/6, Training Loss: 0.6250\n",
      "Epoch 1/6, Training Loss: 0.7382\n",
      "Epoch 1/6, Training Loss: 0.7417\n",
      "Epoch 1/6, Training Loss: 0.6998\n",
      "Epoch 1/6, Training Loss: 0.7376\n",
      "Epoch 1/6, Training Loss: 0.7556\n",
      "Epoch 1/6, Training Loss: 0.5872\n",
      "Epoch 1/6, Training Loss: 0.7524\n",
      "Epoch 1/6, Training Loss: 0.7122\n",
      "Epoch 1/6, Training Loss: 0.9006\n",
      "Epoch 1/6, Training Loss: 0.6067\n",
      "Epoch 1/6, Training Loss: 0.4651\n",
      "Epoch 1/6, Training Loss: 0.7396\n",
      "Epoch 1/6, Training Loss: 0.7650\n",
      "Epoch 1/6, Training Loss: 1.0169\n",
      "Epoch 1/6, Training Loss: 0.7393\n",
      "Epoch 1/6, Training Loss: 0.7128\n",
      "Epoch 1/6, Training Loss: 0.8313\n",
      "Epoch 1/6, Training Loss: 0.7304\n",
      "Epoch 1/6, Training Loss: 0.7689\n",
      "Epoch 1/6, Training Loss: 0.9243\n",
      "Epoch 1/6, Training Loss: 0.7056\n",
      "Epoch 1/6, Training Loss: 0.8238\n",
      "Epoch 1/6, Training Loss: 0.7890\n",
      "Epoch 1/6, Training Loss: 0.6610\n",
      "Epoch 1/6, Training Loss: 0.7191\n",
      "Epoch 1/6, Training Loss: 0.7776\n",
      "Epoch 1/6, Training Loss: 0.8881\n",
      "Epoch 1/6, Training Loss: 0.7581\n",
      "Epoch 1/6, Training Loss: 0.6081\n",
      "Epoch 1/6, Training Loss: 0.9490\n",
      "Epoch 1/6, Training Loss: 0.7775\n",
      "Epoch 1/6, Training Loss: 0.7660\n",
      "Epoch 1/6, Training Loss: 0.6625\n",
      "Epoch 1/6, Training Loss: 0.6809\n",
      "Epoch 1/6, Training Loss: 0.6171\n",
      "Epoch 1/6, Training Loss: 0.7768\n",
      "Epoch 1/6, Training Loss: 0.6483\n",
      "Epoch 1/6, Training Loss: 0.7587\n",
      "Epoch 1/6, Training Loss: 0.8100\n",
      "Epoch 1/6, Training Loss: 0.5397\n",
      "Epoch 1/6, Training Loss: 0.8406\n",
      "Epoch 1/6, Training Loss: 0.7095\n",
      "Epoch 1/6, Training Loss: 0.5277\n",
      "Epoch 1/6, Training Loss: 0.5780\n",
      "Epoch 1/6, Training Loss: 0.6087\n",
      "Epoch 1/6, Training Loss: 0.8164\n",
      "Epoch 1/6, Training Loss: 0.5946\n",
      "Epoch 1/6, Training Loss: 0.7206\n",
      "Epoch 1/6, Training Loss: 0.6148\n",
      "Epoch 1/6, Training Loss: 0.6065\n",
      "Epoch 1/6, Training Loss: 0.4652\n",
      "Epoch 1/6, Training Loss: 0.6102\n",
      "Epoch 1/6, Training Loss: 0.6702\n",
      "Epoch 1/6, Training Loss: 0.6067\n",
      "Epoch 1/6, Training Loss: 0.4743\n",
      "Epoch 1/6, Training Loss: 0.6349\n",
      "Epoch 1/6, Training Loss: 0.7060\n",
      "Epoch 1/6, Training Loss: 0.8538\n",
      "Epoch 1/6, Training Loss: 0.4427\n",
      "Epoch 1/6, Training Loss: 0.5088\n",
      "Epoch 1/6, Training Loss: 0.6782\n",
      "Epoch 1/6, Training Loss: 0.6310\n",
      "Epoch 1/6, Training Loss: 0.5149\n",
      "Epoch 1/6, Training Loss: 0.8854\n",
      "Epoch 1/6, Training Loss: 0.4556\n",
      "Epoch 1/6, Training Loss: 0.8934\n",
      "Epoch 1/6, Training Loss: 0.5253\n",
      "Epoch 1/6, Training Loss: 0.6975\n",
      "Epoch 1/6, Training Loss: 0.7241\n",
      "Epoch 1/6, Training Loss: 0.8003\n",
      "Epoch 1/6, Training Loss: 0.5447\n",
      "Epoch 1/6, Training Loss: 0.4616\n",
      "Epoch 1/6, Training Loss: 0.7739\n",
      "Epoch 1/6, Training Loss: 0.6557\n",
      "Epoch 1/6, Training Loss: 0.9123\n",
      "Epoch 1/6, Training Loss: 0.6698\n",
      "Epoch 1/6, Training Loss: 0.9174\n",
      "Epoch 1/6, Training Loss: 0.6361\n",
      "Epoch 1/6, Training Loss: 0.5097\n",
      "Epoch 1/6, Training Loss: 0.7243\n",
      "Epoch 1/6, Training Loss: 0.8950\n",
      "Epoch 1/6, Training Loss: 0.6682\n",
      "Epoch 1/6, Training Loss: 0.6635\n",
      "Epoch 1/6, Training Loss: 0.6041\n",
      "Epoch 1/6, Training Loss: 0.6413\n",
      "Epoch 1/6, Training Loss: 0.4747\n",
      "Epoch 1/6, Training Loss: 0.6963\n",
      "Epoch 1/6, Training Loss: 0.7973\n",
      "Epoch 1/6, Training Loss: 0.5279\n",
      "Epoch 1/6, Training Loss: 0.4595\n",
      "Epoch 1/6, Training Loss: 0.8232\n",
      "Epoch 1/6, Training Loss: 0.5394\n",
      "Epoch 1/6, Training Loss: 0.7262\n",
      "Epoch 1/6, Training Loss: 0.5858\n",
      "Epoch 1/6, Training Loss: 0.7863\n",
      "Epoch 1/6, Training Loss: 0.8191\n",
      "Epoch 1/6, Training Loss: 0.7015\n",
      "Epoch 1/6, Training Loss: 0.7912\n",
      "Epoch 1/6, Training Loss: 0.6206\n",
      "Epoch 1/6, Training Loss: 0.4337\n",
      "Epoch 1/6, Training Loss: 0.5602\n",
      "Epoch 1/6, Training Loss: 0.5702\n",
      "Epoch 1/6, Training Loss: 0.7682\n",
      "Epoch 1/6, Training Loss: 0.5101\n",
      "Epoch 1/6, Training Loss: 0.6145\n",
      "Epoch 1/6, Training Loss: 0.6301\n",
      "Epoch 1/6, Training Loss: 0.6200\n",
      "Epoch 1/6, Training Loss: 0.6778\n",
      "Epoch 1/6, Training Loss: 0.7524\n",
      "Epoch 1/6, Training Loss: 0.6154\n",
      "Epoch 1/6, Training Loss: 0.5586\n",
      "Epoch 1/6, Training Loss: 0.6852\n",
      "Epoch 1/6, Training Loss: 0.6503\n",
      "Epoch 1/6, Training Loss: 0.8754\n",
      "Epoch 1/6, Training Loss: 0.5633\n",
      "Epoch 1/6, Training Loss: 0.5304\n",
      "Epoch 1/6, Training Loss: 0.3889\n",
      "Epoch 1/6, Training Loss: 0.5594\n",
      "Epoch 1/6, Training Loss: 0.6620\n",
      "Epoch 1/6, Training Loss: 0.7295\n",
      "Epoch 1/6, Training Loss: 0.6705\n",
      "Epoch 1/6, Training Loss: 0.5732\n",
      "Epoch 1/6, Training Loss: 0.7394\n",
      "Epoch 1/6, Training Loss: 0.6510\n",
      "Epoch 1/6, Training Loss: 0.8233\n",
      "Epoch 1/6, Training Loss: 0.6000\n",
      "Epoch 1/6, Training Loss: 0.5602\n",
      "Epoch 1/6, Training Loss: 0.5358\n",
      "Epoch 1/6, Training Loss: 0.6467\n",
      "Epoch 1/6, Training Loss: 0.5574\n",
      "Epoch 1/6, Training Loss: 0.4499\n",
      "Epoch 1/6, Training Loss: 0.6150\n",
      "Epoch 1/6, Training Loss: 0.7521\n",
      "Epoch 1/6, Training Loss: 0.5107\n",
      "Epoch 1/6, Training Loss: 0.7373\n",
      "Epoch 1/6, Training Loss: 0.7912\n",
      "Epoch 1/6, Training Loss: 0.6045\n",
      "Epoch 1/6, Training Loss: 0.3583\n",
      "Epoch 1/6, Training Loss: 0.7032\n",
      "Epoch 1/6, Training Loss: 0.8600\n",
      "Epoch 1/6, Training Loss: 0.5676\n",
      "Epoch 1/6, Training Loss: 0.7568\n",
      "Epoch 1/6, Training Loss: 0.5588\n",
      "Epoch 1/6, Training Loss: 0.5788\n",
      "Epoch 1/6, Training Loss: 0.6848\n",
      "Epoch 1/6, Training Loss: 0.8773\n",
      "Epoch 1/6, Training Loss: 0.6287\n",
      "Epoch 1/6, Training Loss: 0.3751\n",
      "Epoch 1/6, Training Loss: 0.7172\n",
      "Epoch 1/6, Training Loss: 0.4898\n",
      "Epoch 1/6, Training Loss: 0.7129\n",
      "Epoch 1/6, Training Loss: 0.9257\n",
      "Epoch 1/6, Training Loss: 0.7461\n",
      "Epoch 1/6, Training Loss: 0.5421\n",
      "Epoch 1/6, Training Loss: 0.6135\n",
      "Epoch 1/6, Training Loss: 0.5531\n",
      "Epoch 1/6, Training Loss: 0.6423\n",
      "Epoch 1/6, Training Loss: 0.5679\n",
      "Epoch 1/6, Training Loss: 0.5379\n",
      "Epoch 1/6, Training Loss: 0.5770\n",
      "Epoch 1/6, Training Loss: 0.6964\n",
      "Epoch 1/6, Training Loss: 0.7280\n",
      "Epoch 1/6, Training Loss: 0.8083\n",
      "Epoch 1/6, Training Loss: 0.7202\n",
      "Epoch 1/6, Training Loss: 0.6072\n",
      "Epoch 1/6, Training Loss: 0.9138\n",
      "Epoch 1/6, Training Loss: 0.6466\n",
      "Epoch 1/6, Training Loss: 0.5107\n",
      "Epoch 1/6, Training Loss: 0.5967\n",
      "Epoch 1/6, Training Loss: 0.5830\n",
      "Epoch 1/6, Training Loss: 0.6264\n",
      "Epoch 1/6, Training Loss: 0.6090\n",
      "Epoch 1/6, Training Loss: 0.4341\n",
      "Epoch 1/6, Training Loss: 0.6634\n",
      "Epoch 1/6, Training Loss: 0.5675\n",
      "Epoch 1/6, Training Loss: 0.4089\n",
      "Epoch 1/6, Training Loss: 0.6339\n",
      "Epoch 1/6, Training Loss: 0.8115\n",
      "Epoch 1/6, Training Loss: 0.5607\n",
      "Epoch 1/6, Training Loss: 0.5215\n",
      "Epoch 1/6, Training Loss: 0.3445\n",
      "Epoch 1/6, Training Loss: 0.5854\n",
      "Epoch 1/6, Training Loss: 0.6151\n",
      "Epoch 1/6, Training Loss: 0.5624\n",
      "Epoch 1/6, Training Loss: 0.4435\n",
      "Epoch 1/6, Training Loss: 0.6681\n",
      "Epoch 1/6, Training Loss: 0.4459\n",
      "Epoch 1/6, Training Loss: 0.6624\n",
      "Epoch 1/6, Training Loss: 0.6969\n",
      "Epoch 1/6, Training Loss: 0.4269\n",
      "Epoch 1/6, Training Loss: 0.5840\n",
      "Epoch 1/6, Training Loss: 0.5541\n",
      "Epoch 1/6, Training Loss: 0.3260\n",
      "Epoch 1/6, Training Loss: 0.4254\n",
      "Epoch 1/6, Training Loss: 0.5931\n",
      "Epoch 1/6, Training Loss: 0.3999\n",
      "Epoch 1/6, Training Loss: 0.4917\n",
      "Epoch 1/6, Training Loss: 0.5451\n",
      "Epoch 1/6, Training Loss: 0.4780\n",
      "Epoch 1/6, Training Loss: 0.3471\n",
      "Epoch 1/6, Training Loss: 0.3377\n",
      "Epoch 1/6, Training Loss: 0.6884\n",
      "Epoch 1/6, Training Loss: 0.6131\n",
      "Epoch 1/6, Training Loss: 0.5636\n",
      "Epoch 1/6, Training Loss: 0.4440\n",
      "Epoch 1/6, Training Loss: 0.6124\n",
      "Epoch 1/6, Training Loss: 0.7529\n",
      "Epoch 1/6, Training Loss: 0.5898\n",
      "Epoch 1/6, Training Loss: 0.5317\n",
      "Epoch 1/6, Training Loss: 0.5715\n",
      "Epoch 1/6, Training Loss: 0.7014\n",
      "Epoch 1/6, Training Loss: 0.5419\n",
      "Epoch 1/6, Training Loss: 0.6445\n",
      "Epoch 1/6, Training Loss: 0.5100\n",
      "Epoch 1/6, Training Loss: 0.5808\n",
      "Epoch 1/6, Training Loss: 0.5220\n",
      "Epoch 1/6, Training Loss: 0.5445\n",
      "Epoch 1/6, Training Loss: 0.6496\n",
      "Epoch 1/6, Training Loss: 0.6327\n",
      "Epoch 1/6, Training Loss: 0.3508\n",
      "Epoch 1/6, Training Loss: 0.6350\n",
      "Epoch 1/6, Training Loss: 0.7475\n",
      "Epoch 1/6, Training Loss: 0.5924\n",
      "Epoch 1/6, Training Loss: 0.7560\n",
      "Epoch 1/6, Training Loss: 0.5775\n",
      "Epoch 1/6, Training Loss: 0.6892\n",
      "Epoch 1/6, Training Loss: 0.6629\n",
      "Epoch 1/6, Training Loss: 0.5499\n",
      "Epoch 1/6, Training Loss: 0.5881\n",
      "Epoch 1/6, Training Loss: 0.4528\n",
      "Epoch 1/6, Training Loss: 0.5348\n",
      "Epoch 1/6, Training Loss: 0.4757\n",
      "Epoch 1/6, Training Loss: 0.7152\n",
      "Epoch 1/6, Training Loss: 0.6997\n",
      "Epoch 1/6, Training Loss: 0.5480\n",
      "Epoch 1/6, Training Loss: 0.5641\n",
      "Epoch 1/6, Training Loss: 0.6043\n",
      "Epoch 1/6, Training Loss: 0.4569\n",
      "Epoch 1/6, Training Loss: 0.5792\n",
      "Epoch 1/6, Training Loss: 0.7608\n",
      "Epoch 1/6, Training Loss: 0.5572\n",
      "Epoch 1/6, Training Loss: 0.8158\n",
      "Epoch 1/6, Training Loss: 0.5639\n",
      "Epoch 1/6, Training Loss: 0.5796\n",
      "Epoch 1/6, Training Loss: 0.9246\n",
      "Epoch 1/6, Training Loss: 0.6500\n",
      "Epoch 1/6, Training Loss: 0.4143\n",
      "Epoch 1/6, Training Loss: 0.5970\n",
      "Epoch 1/6, Training Loss: 0.5399\n",
      "Epoch 1/6, Training Loss: 0.4588\n",
      "Epoch 1/6, Training Loss: 0.6820\n",
      "Epoch 1/6, Training Loss: 0.6685\n",
      "Epoch 1/6, Training Loss: 0.7859\n",
      "Epoch 1/6, Training Loss: 0.4178\n",
      "Epoch 1/6, Training Loss: 0.5208\n",
      "Epoch 1/6, Training Loss: 0.5610\n",
      "Epoch 1/6, Training Loss: 0.5142\n",
      "Epoch 1/6, Training Loss: 0.7472\n",
      "Epoch 1/6, Training Loss: 0.6312\n",
      "Epoch 1/6, Training Loss: 0.6971\n",
      "Epoch 1/6, Training Loss: 0.6738\n",
      "Epoch 1/6, Training Loss: 0.6808\n",
      "Epoch 1/6, Training Loss: 0.4955\n",
      "Epoch 1/6, Training Loss: 0.6287\n",
      "Epoch 1/6, Training Loss: 0.5982\n",
      "Epoch 1/6, Training Loss: 0.5982, Cross-Validation Loss: 0.6108\n",
      "Epoch 2/6, Training Loss: 0.4597\n",
      "Epoch 2/6, Training Loss: 0.5619\n",
      "Epoch 2/6, Training Loss: 0.5367\n",
      "Epoch 2/6, Training Loss: 0.5975\n",
      "Epoch 2/6, Training Loss: 0.5653\n",
      "Epoch 2/6, Training Loss: 0.4715\n",
      "Epoch 2/6, Training Loss: 0.4983\n",
      "Epoch 2/6, Training Loss: 0.3484\n",
      "Epoch 2/6, Training Loss: 0.5671\n",
      "Epoch 2/6, Training Loss: 0.5555\n",
      "Epoch 2/6, Training Loss: 0.3969\n",
      "Epoch 2/6, Training Loss: 0.3838\n",
      "Epoch 2/6, Training Loss: 0.3482\n",
      "Epoch 2/6, Training Loss: 0.4060\n",
      "Epoch 2/6, Training Loss: 0.5912\n",
      "Epoch 2/6, Training Loss: 0.4270\n",
      "Epoch 2/6, Training Loss: 0.4454\n",
      "Epoch 2/6, Training Loss: 0.4133\n",
      "Epoch 2/6, Training Loss: 0.3983\n",
      "Epoch 2/6, Training Loss: 0.4432\n",
      "Epoch 2/6, Training Loss: 0.4314\n",
      "Epoch 2/6, Training Loss: 0.3820\n",
      "Epoch 2/6, Training Loss: 0.3659\n",
      "Epoch 2/6, Training Loss: 0.2410\n",
      "Epoch 2/6, Training Loss: 0.4141\n",
      "Epoch 2/6, Training Loss: 0.3504\n",
      "Epoch 2/6, Training Loss: 0.3694\n",
      "Epoch 2/6, Training Loss: 0.4329\n",
      "Epoch 2/6, Training Loss: 0.5538\n",
      "Epoch 2/6, Training Loss: 0.4496\n",
      "Epoch 2/6, Training Loss: 0.5409\n",
      "Epoch 2/6, Training Loss: 0.3563\n",
      "Epoch 2/6, Training Loss: 0.5851\n",
      "Epoch 2/6, Training Loss: 0.4099\n",
      "Epoch 2/6, Training Loss: 0.4963\n",
      "Epoch 2/6, Training Loss: 0.2991\n",
      "Epoch 2/6, Training Loss: 0.4759\n",
      "Epoch 2/6, Training Loss: 0.4833\n",
      "Epoch 2/6, Training Loss: 0.4010\n",
      "Epoch 2/6, Training Loss: 0.3844\n",
      "Epoch 2/6, Training Loss: 0.3991\n",
      "Epoch 2/6, Training Loss: 0.5221\n",
      "Epoch 2/6, Training Loss: 0.6165\n",
      "Epoch 2/6, Training Loss: 0.4606\n",
      "Epoch 2/6, Training Loss: 0.4583\n",
      "Epoch 2/6, Training Loss: 0.3516\n",
      "Epoch 2/6, Training Loss: 0.4902\n",
      "Epoch 2/6, Training Loss: 0.4937\n",
      "Epoch 2/6, Training Loss: 0.5712\n",
      "Epoch 2/6, Training Loss: 0.6578\n",
      "Epoch 2/6, Training Loss: 0.5609\n",
      "Epoch 2/6, Training Loss: 0.2582\n",
      "Epoch 2/6, Training Loss: 0.4328\n",
      "Epoch 2/6, Training Loss: 0.3435\n",
      "Epoch 2/6, Training Loss: 0.4110\n",
      "Epoch 2/6, Training Loss: 0.3523\n",
      "Epoch 2/6, Training Loss: 0.7272\n",
      "Epoch 2/6, Training Loss: 0.5454\n",
      "Epoch 2/6, Training Loss: 0.4376\n",
      "Epoch 2/6, Training Loss: 0.4401\n",
      "Epoch 2/6, Training Loss: 0.4946\n",
      "Epoch 2/6, Training Loss: 0.5292\n",
      "Epoch 2/6, Training Loss: 0.6265\n",
      "Epoch 2/6, Training Loss: 0.6411\n",
      "Epoch 2/6, Training Loss: 0.5505\n",
      "Epoch 2/6, Training Loss: 0.4279\n",
      "Epoch 2/6, Training Loss: 0.4184\n",
      "Epoch 2/6, Training Loss: 0.5798\n",
      "Epoch 2/6, Training Loss: 0.6066\n",
      "Epoch 2/6, Training Loss: 0.4161\n",
      "Epoch 2/6, Training Loss: 0.2957\n",
      "Epoch 2/6, Training Loss: 0.4488\n",
      "Epoch 2/6, Training Loss: 0.4581\n",
      "Epoch 2/6, Training Loss: 0.6700\n",
      "Epoch 2/6, Training Loss: 0.4670\n",
      "Epoch 2/6, Training Loss: 0.4401\n",
      "Epoch 2/6, Training Loss: 0.5888\n",
      "Epoch 2/6, Training Loss: 0.3445\n",
      "Epoch 2/6, Training Loss: 0.3412\n",
      "Epoch 2/6, Training Loss: 0.5478\n",
      "Epoch 2/6, Training Loss: 0.4201\n",
      "Epoch 2/6, Training Loss: 0.5524\n",
      "Epoch 2/6, Training Loss: 0.3614\n",
      "Epoch 2/6, Training Loss: 0.4279\n",
      "Epoch 2/6, Training Loss: 0.4567\n",
      "Epoch 2/6, Training Loss: 0.3742\n",
      "Epoch 2/6, Training Loss: 0.3324\n",
      "Epoch 2/6, Training Loss: 0.4250\n",
      "Epoch 2/6, Training Loss: 0.4426\n",
      "Epoch 2/6, Training Loss: 0.4023\n",
      "Epoch 2/6, Training Loss: 0.4299\n",
      "Epoch 2/6, Training Loss: 0.4013\n",
      "Epoch 2/6, Training Loss: 0.6014\n",
      "Epoch 2/6, Training Loss: 0.3760\n",
      "Epoch 2/6, Training Loss: 0.4057\n",
      "Epoch 2/6, Training Loss: 0.2279\n",
      "Epoch 2/6, Training Loss: 0.3434\n",
      "Epoch 2/6, Training Loss: 0.4475\n",
      "Epoch 2/6, Training Loss: 0.4899\n",
      "Epoch 2/6, Training Loss: 0.4114\n",
      "Epoch 2/6, Training Loss: 0.5388\n",
      "Epoch 2/6, Training Loss: 0.3296\n",
      "Epoch 2/6, Training Loss: 0.3673\n",
      "Epoch 2/6, Training Loss: 0.5611\n",
      "Epoch 2/6, Training Loss: 0.4190\n",
      "Epoch 2/6, Training Loss: 0.3940\n",
      "Epoch 2/6, Training Loss: 0.3676\n",
      "Epoch 2/6, Training Loss: 0.5151\n",
      "Epoch 2/6, Training Loss: 0.4878\n",
      "Epoch 2/6, Training Loss: 0.4499\n",
      "Epoch 2/6, Training Loss: 0.5320\n",
      "Epoch 2/6, Training Loss: 0.3908\n",
      "Epoch 2/6, Training Loss: 0.3188\n",
      "Epoch 2/6, Training Loss: 0.3166\n",
      "Epoch 2/6, Training Loss: 0.3528\n",
      "Epoch 2/6, Training Loss: 0.3953\n",
      "Epoch 2/6, Training Loss: 0.2690\n",
      "Epoch 2/6, Training Loss: 0.3219\n",
      "Epoch 2/6, Training Loss: 0.7298\n",
      "Epoch 2/6, Training Loss: 0.4669\n",
      "Epoch 2/6, Training Loss: 0.6134\n",
      "Epoch 2/6, Training Loss: 0.3269\n",
      "Epoch 2/6, Training Loss: 0.4366\n",
      "Epoch 2/6, Training Loss: 0.1985\n",
      "Epoch 2/6, Training Loss: 0.4603\n",
      "Epoch 2/6, Training Loss: 0.4856\n",
      "Epoch 2/6, Training Loss: 0.3069\n",
      "Epoch 2/6, Training Loss: 0.5068\n",
      "Epoch 2/6, Training Loss: 0.5499\n",
      "Epoch 2/6, Training Loss: 0.4703\n",
      "Epoch 2/6, Training Loss: 0.2949\n",
      "Epoch 2/6, Training Loss: 0.2017\n",
      "Epoch 2/6, Training Loss: 0.4285\n",
      "Epoch 2/6, Training Loss: 0.5219\n",
      "Epoch 2/6, Training Loss: 0.3508\n",
      "Epoch 2/6, Training Loss: 0.7003\n",
      "Epoch 2/6, Training Loss: 0.2687\n",
      "Epoch 2/6, Training Loss: 0.3579\n",
      "Epoch 2/6, Training Loss: 0.6250\n",
      "Epoch 2/6, Training Loss: 0.3499\n",
      "Epoch 2/6, Training Loss: 0.7473\n",
      "Epoch 2/6, Training Loss: 0.5823\n",
      "Epoch 2/6, Training Loss: 0.3794\n",
      "Epoch 2/6, Training Loss: 0.6070\n",
      "Epoch 2/6, Training Loss: 0.5000\n",
      "Epoch 2/6, Training Loss: 0.5212\n",
      "Epoch 2/6, Training Loss: 0.4614\n",
      "Epoch 2/6, Training Loss: 0.5701\n",
      "Epoch 2/6, Training Loss: 0.5597\n",
      "Epoch 2/6, Training Loss: 0.6466\n",
      "Epoch 2/6, Training Loss: 0.4456\n",
      "Epoch 2/6, Training Loss: 0.5978\n",
      "Epoch 2/6, Training Loss: 0.6658\n",
      "Epoch 2/6, Training Loss: 0.6004\n",
      "Epoch 2/6, Training Loss: 0.4282\n",
      "Epoch 2/6, Training Loss: 0.4066\n",
      "Epoch 2/6, Training Loss: 0.4725\n",
      "Epoch 2/6, Training Loss: 0.6222\n",
      "Epoch 2/6, Training Loss: 0.3870\n",
      "Epoch 2/6, Training Loss: 0.5254\n",
      "Epoch 2/6, Training Loss: 0.6000\n",
      "Epoch 2/6, Training Loss: 0.4152\n",
      "Epoch 2/6, Training Loss: 0.5422\n",
      "Epoch 2/6, Training Loss: 0.4902\n",
      "Epoch 2/6, Training Loss: 0.4349\n",
      "Epoch 2/6, Training Loss: 0.4363\n",
      "Epoch 2/6, Training Loss: 0.4719\n",
      "Epoch 2/6, Training Loss: 0.3330\n",
      "Epoch 2/6, Training Loss: 0.4198\n",
      "Epoch 2/6, Training Loss: 0.4655\n",
      "Epoch 2/6, Training Loss: 0.6686\n",
      "Epoch 2/6, Training Loss: 0.6099\n",
      "Epoch 2/6, Training Loss: 0.2440\n",
      "Epoch 2/6, Training Loss: 0.6087\n",
      "Epoch 2/6, Training Loss: 0.3661\n",
      "Epoch 2/6, Training Loss: 0.2577\n",
      "Epoch 2/6, Training Loss: 0.5019\n",
      "Epoch 2/6, Training Loss: 0.5946\n",
      "Epoch 2/6, Training Loss: 0.6374\n",
      "Epoch 2/6, Training Loss: 0.5554\n",
      "Epoch 2/6, Training Loss: 0.4439\n",
      "Epoch 2/6, Training Loss: 0.4103\n",
      "Epoch 2/6, Training Loss: 0.4747\n",
      "Epoch 2/6, Training Loss: 0.2654\n",
      "Epoch 2/6, Training Loss: 0.4382\n",
      "Epoch 2/6, Training Loss: 0.4243\n",
      "Epoch 2/6, Training Loss: 0.3430\n",
      "Epoch 2/6, Training Loss: 0.2580\n",
      "Epoch 2/6, Training Loss: 0.4145\n",
      "Epoch 2/6, Training Loss: 0.5146\n",
      "Epoch 2/6, Training Loss: 0.4551\n",
      "Epoch 2/6, Training Loss: 0.5057\n",
      "Epoch 2/6, Training Loss: 0.6606\n",
      "Epoch 2/6, Training Loss: 0.3426\n",
      "Epoch 2/6, Training Loss: 0.3885\n",
      "Epoch 2/6, Training Loss: 0.3911\n",
      "Epoch 2/6, Training Loss: 0.3421\n",
      "Epoch 2/6, Training Loss: 0.8204\n",
      "Epoch 2/6, Training Loss: 0.3967\n",
      "Epoch 2/6, Training Loss: 0.5645\n",
      "Epoch 2/6, Training Loss: 0.5910\n",
      "Epoch 2/6, Training Loss: 0.4630\n",
      "Epoch 2/6, Training Loss: 0.6601\n",
      "Epoch 2/6, Training Loss: 0.4143\n",
      "Epoch 2/6, Training Loss: 0.3462\n",
      "Epoch 2/6, Training Loss: 0.6593\n",
      "Epoch 2/6, Training Loss: 0.4135\n",
      "Epoch 2/6, Training Loss: 0.6299\n",
      "Epoch 2/6, Training Loss: 0.3306\n",
      "Epoch 2/6, Training Loss: 0.5212\n",
      "Epoch 2/6, Training Loss: 0.3257\n",
      "Epoch 2/6, Training Loss: 0.3230\n",
      "Epoch 2/6, Training Loss: 0.3959\n",
      "Epoch 2/6, Training Loss: 0.4641\n",
      "Epoch 2/6, Training Loss: 0.3079\n",
      "Epoch 2/6, Training Loss: 0.4354\n",
      "Epoch 2/6, Training Loss: 0.4458\n",
      "Epoch 2/6, Training Loss: 0.3407\n",
      "Epoch 2/6, Training Loss: 0.5555\n",
      "Epoch 2/6, Training Loss: 0.4681\n",
      "Epoch 2/6, Training Loss: 0.3370\n",
      "Epoch 2/6, Training Loss: 0.7243\n",
      "Epoch 2/6, Training Loss: 0.5388\n",
      "Epoch 2/6, Training Loss: 0.3787\n",
      "Epoch 2/6, Training Loss: 0.3771\n",
      "Epoch 2/6, Training Loss: 0.5087\n",
      "Epoch 2/6, Training Loss: 0.5403\n",
      "Epoch 2/6, Training Loss: 0.4697\n",
      "Epoch 2/6, Training Loss: 0.3702\n",
      "Epoch 2/6, Training Loss: 0.5632\n",
      "Epoch 2/6, Training Loss: 0.5466\n",
      "Epoch 2/6, Training Loss: 0.3608\n",
      "Epoch 2/6, Training Loss: 0.4031\n",
      "Epoch 2/6, Training Loss: 0.5010\n",
      "Epoch 2/6, Training Loss: 0.5757\n",
      "Epoch 2/6, Training Loss: 0.3201\n",
      "Epoch 2/6, Training Loss: 0.3676\n",
      "Epoch 2/6, Training Loss: 0.4024\n",
      "Epoch 2/6, Training Loss: 0.3155\n",
      "Epoch 2/6, Training Loss: 0.3965\n",
      "Epoch 2/6, Training Loss: 0.4567\n",
      "Epoch 2/6, Training Loss: 0.6745\n",
      "Epoch 2/6, Training Loss: 0.4571\n",
      "Epoch 2/6, Training Loss: 0.6739\n",
      "Epoch 2/6, Training Loss: 0.6979\n",
      "Epoch 2/6, Training Loss: 0.5848\n",
      "Epoch 2/6, Training Loss: 0.4480\n",
      "Epoch 2/6, Training Loss: 0.6223\n",
      "Epoch 2/6, Training Loss: 0.4411\n",
      "Epoch 2/6, Training Loss: 0.5692\n",
      "Epoch 2/6, Training Loss: 0.3418\n",
      "Epoch 2/6, Training Loss: 0.5360\n",
      "Epoch 2/6, Training Loss: 0.3531\n",
      "Epoch 2/6, Training Loss: 0.3909\n",
      "Epoch 2/6, Training Loss: 0.5889\n",
      "Epoch 2/6, Training Loss: 0.5728\n",
      "Epoch 2/6, Training Loss: 0.5684\n",
      "Epoch 2/6, Training Loss: 0.3946\n",
      "Epoch 2/6, Training Loss: 0.2982\n",
      "Epoch 2/6, Training Loss: 0.5930\n",
      "Epoch 2/6, Training Loss: 0.4617\n",
      "Epoch 2/6, Training Loss: 0.3519\n",
      "Epoch 2/6, Training Loss: 0.3383\n",
      "Epoch 2/6, Training Loss: 0.4775\n",
      "Epoch 2/6, Training Loss: 0.4848\n",
      "Epoch 2/6, Training Loss: 0.5209\n",
      "Epoch 2/6, Training Loss: 0.4764\n",
      "Epoch 2/6, Training Loss: 0.3636\n",
      "Epoch 2/6, Training Loss: 0.5744\n",
      "Epoch 2/6, Training Loss: 0.4812\n",
      "Epoch 2/6, Training Loss: 0.2746\n",
      "Epoch 2/6, Training Loss: 0.2163\n",
      "Epoch 2/6, Training Loss: 0.5518\n",
      "Epoch 2/6, Training Loss: 0.4873\n",
      "Epoch 2/6, Training Loss: 0.5535\n",
      "Epoch 2/6, Training Loss: 0.2843\n",
      "Epoch 2/6, Training Loss: 0.3570\n",
      "Epoch 2/6, Training Loss: 0.5410\n",
      "Epoch 2/6, Training Loss: 0.5527\n",
      "Epoch 2/6, Training Loss: 0.4086\n",
      "Epoch 2/6, Training Loss: 0.3869\n",
      "Epoch 2/6, Training Loss: 0.5203\n",
      "Epoch 2/6, Training Loss: 0.3390\n",
      "Epoch 2/6, Training Loss: 0.8448\n",
      "Epoch 2/6, Training Loss: 0.6196\n",
      "Epoch 2/6, Training Loss: 0.3538\n",
      "Epoch 2/6, Training Loss: 0.6143\n",
      "Epoch 2/6, Training Loss: 0.3611\n",
      "Epoch 2/6, Training Loss: 0.3273\n",
      "Epoch 2/6, Training Loss: 0.5175\n",
      "Epoch 2/6, Training Loss: 0.4108\n",
      "Epoch 2/6, Training Loss: 0.2522\n",
      "Epoch 2/6, Training Loss: 0.3083\n",
      "Epoch 2/6, Training Loss: 0.5363\n",
      "Epoch 2/6, Training Loss: 0.4652\n",
      "Epoch 2/6, Training Loss: 0.5184\n",
      "Epoch 2/6, Training Loss: 0.3490\n",
      "Epoch 2/6, Training Loss: 0.5900\n",
      "Epoch 2/6, Training Loss: 0.4471\n",
      "Epoch 2/6, Training Loss: 0.3541\n",
      "Epoch 2/6, Training Loss: 0.4372\n",
      "Epoch 2/6, Training Loss: 0.2802\n",
      "Epoch 2/6, Training Loss: 0.3892\n",
      "Epoch 2/6, Training Loss: 0.3465\n",
      "Epoch 2/6, Training Loss: 0.3217\n",
      "Epoch 2/6, Training Loss: 0.4442\n",
      "Epoch 2/6, Training Loss: 0.3794\n",
      "Epoch 2/6, Training Loss: 0.4241\n",
      "Epoch 2/6, Training Loss: 0.3701\n",
      "Epoch 2/6, Training Loss: 0.4728\n",
      "Epoch 2/6, Training Loss: 0.3557\n",
      "Epoch 2/6, Training Loss: 0.2778\n",
      "Epoch 2/6, Training Loss: 0.4397\n",
      "Epoch 2/6, Training Loss: 0.4061\n",
      "Epoch 2/6, Training Loss: 0.4090\n",
      "Epoch 2/6, Training Loss: 0.5384\n",
      "Epoch 2/6, Training Loss: 0.4429\n",
      "Epoch 2/6, Training Loss: 0.5385\n",
      "Epoch 2/6, Training Loss: 0.3320\n",
      "Epoch 2/6, Training Loss: 0.3051\n",
      "Epoch 2/6, Training Loss: 0.7224\n",
      "Epoch 2/6, Training Loss: 0.5665\n",
      "Epoch 2/6, Training Loss: 0.2792\n",
      "Epoch 2/6, Training Loss: 0.3861\n",
      "Epoch 2/6, Training Loss: 0.3578\n",
      "Epoch 2/6, Training Loss: 0.5756\n",
      "Epoch 2/6, Training Loss: 0.4135\n",
      "Epoch 2/6, Training Loss: 0.5177\n",
      "Epoch 2/6, Training Loss: 0.3395\n",
      "Epoch 2/6, Training Loss: 0.3593\n",
      "Epoch 2/6, Training Loss: 0.6689\n",
      "Epoch 2/6, Training Loss: 0.4591\n",
      "Epoch 2/6, Training Loss: 0.5223\n",
      "Epoch 2/6, Training Loss: 0.5988\n",
      "Epoch 2/6, Training Loss: 0.3594\n",
      "Epoch 2/6, Training Loss: 0.3137\n",
      "Epoch 2/6, Training Loss: 0.5526\n",
      "Epoch 2/6, Training Loss: 0.6790\n",
      "Epoch 2/6, Training Loss: 0.5907\n",
      "Epoch 2/6, Training Loss: 0.5947\n",
      "Epoch 2/6, Training Loss: 0.4126\n",
      "Epoch 2/6, Training Loss: 0.5722\n",
      "Epoch 2/6, Training Loss: 0.4337\n",
      "Epoch 2/6, Training Loss: 0.5631\n",
      "Epoch 2/6, Training Loss: 0.2593\n",
      "Epoch 2/6, Training Loss: 0.4811\n",
      "Epoch 2/6, Training Loss: 0.4798\n",
      "Epoch 2/6, Training Loss: 0.5175\n",
      "Epoch 2/6, Training Loss: 0.5265\n",
      "Epoch 2/6, Training Loss: 0.3885\n",
      "Epoch 2/6, Training Loss: 0.6702\n",
      "Epoch 2/6, Training Loss: 0.4919\n",
      "Epoch 2/6, Training Loss: 0.4200\n",
      "Epoch 2/6, Training Loss: 0.4570\n",
      "Epoch 2/6, Training Loss: 0.6155\n",
      "Epoch 2/6, Training Loss: 0.4319\n",
      "Epoch 2/6, Training Loss: 0.3165\n",
      "Epoch 2/6, Training Loss: 0.3808\n",
      "Epoch 2/6, Training Loss: 0.5139\n",
      "Epoch 2/6, Training Loss: 0.6080\n",
      "Epoch 2/6, Training Loss: 0.3624\n",
      "Epoch 2/6, Training Loss: 0.6170\n",
      "Epoch 2/6, Training Loss: 0.3036\n",
      "Epoch 2/6, Training Loss: 0.3858\n",
      "Epoch 2/6, Training Loss: 0.4580\n",
      "Epoch 2/6, Training Loss: 0.4990\n",
      "Epoch 2/6, Training Loss: 0.4121\n",
      "Epoch 2/6, Training Loss: 0.3482\n",
      "Epoch 2/6, Training Loss: 0.3069\n",
      "Epoch 2/6, Training Loss: 0.4835\n",
      "Epoch 2/6, Training Loss: 0.4024\n",
      "Epoch 2/6, Training Loss: 0.3802\n",
      "Epoch 2/6, Training Loss: 0.4074\n",
      "Epoch 2/6, Training Loss: 0.5559\n",
      "Epoch 2/6, Training Loss: 0.6636\n",
      "Epoch 2/6, Training Loss: 0.5170\n",
      "Epoch 2/6, Training Loss: 0.3899\n",
      "Epoch 2/6, Training Loss: 0.4455\n",
      "Epoch 2/6, Training Loss: 0.4723\n",
      "Epoch 2/6, Training Loss: 0.5680\n",
      "Epoch 2/6, Training Loss: 0.3367\n",
      "Epoch 2/6, Training Loss: 0.3787\n",
      "Epoch 2/6, Training Loss: 0.5884\n",
      "Epoch 2/6, Training Loss: 0.4939\n",
      "Epoch 2/6, Training Loss: 0.3855\n",
      "Epoch 2/6, Training Loss: 0.5348\n",
      "Epoch 2/6, Training Loss: 0.3335\n",
      "Epoch 2/6, Training Loss: 0.3510\n",
      "Epoch 2/6, Training Loss: 0.8532\n",
      "Epoch 2/6, Training Loss: 0.4617\n",
      "Epoch 2/6, Training Loss: 0.4473\n",
      "Epoch 2/6, Training Loss: 0.3953\n",
      "Epoch 2/6, Training Loss: 0.3375\n",
      "Epoch 2/6, Training Loss: 0.3953\n",
      "Epoch 2/6, Training Loss: 0.4647\n",
      "Epoch 2/6, Training Loss: 0.2884\n",
      "Epoch 2/6, Training Loss: 0.3573\n",
      "Epoch 2/6, Training Loss: 0.4634\n",
      "Epoch 2/6, Training Loss: 0.4440\n",
      "Epoch 2/6, Training Loss: 0.3819\n",
      "Epoch 2/6, Training Loss: 0.5680\n",
      "Epoch 2/6, Training Loss: 0.3842\n",
      "Epoch 2/6, Training Loss: 0.3107\n",
      "Epoch 2/6, Training Loss: 0.5751\n",
      "Epoch 2/6, Training Loss: 0.4566\n",
      "Epoch 2/6, Training Loss: 0.3856\n",
      "Epoch 2/6, Training Loss: 0.4018\n",
      "Epoch 2/6, Training Loss: 0.4130\n",
      "Epoch 2/6, Training Loss: 0.3539\n",
      "Epoch 2/6, Training Loss: 0.5181\n",
      "Epoch 2/6, Training Loss: 0.6571\n",
      "Epoch 2/6, Training Loss: 0.4957\n",
      "Epoch 2/6, Training Loss: 0.4573\n",
      "Epoch 2/6, Training Loss: 0.5935\n",
      "Epoch 2/6, Training Loss: 0.3566\n",
      "Epoch 2/6, Training Loss: 0.2393\n",
      "Epoch 2/6, Training Loss: 0.2324\n",
      "Epoch 2/6, Training Loss: 0.3368\n",
      "Epoch 2/6, Training Loss: 0.2892\n",
      "Epoch 2/6, Training Loss: 0.2549\n",
      "Epoch 2/6, Training Loss: 0.5828\n",
      "Epoch 2/6, Training Loss: 0.4871\n",
      "Epoch 2/6, Training Loss: 0.4590\n",
      "Epoch 2/6, Training Loss: 0.6961\n",
      "Epoch 2/6, Training Loss: 0.5118\n",
      "Epoch 2/6, Training Loss: 0.5909\n",
      "Epoch 2/6, Training Loss: 0.3157\n",
      "Epoch 2/6, Training Loss: 0.3894\n",
      "Epoch 2/6, Training Loss: 0.2944\n",
      "Epoch 2/6, Training Loss: 0.2282\n",
      "Epoch 2/6, Training Loss: 0.2957\n",
      "Epoch 2/6, Training Loss: 0.4426\n",
      "Epoch 2/6, Training Loss: 0.3427\n",
      "Epoch 2/6, Training Loss: 0.5536\n",
      "Epoch 2/6, Training Loss: 0.5275\n",
      "Epoch 2/6, Training Loss: 0.5415\n",
      "Epoch 2/6, Training Loss: 0.3515\n",
      "Epoch 2/6, Training Loss: 0.5584\n",
      "Epoch 2/6, Training Loss: 0.5321\n",
      "Epoch 2/6, Training Loss: 0.6197\n",
      "Epoch 2/6, Training Loss: 0.4713\n",
      "Epoch 2/6, Training Loss: 0.2649\n",
      "Epoch 2/6, Training Loss: 0.4165\n",
      "Epoch 2/6, Training Loss: 0.4159\n",
      "Epoch 2/6, Training Loss: 0.5009\n",
      "Epoch 2/6, Training Loss: 0.6635\n",
      "Epoch 2/6, Training Loss: 0.3741\n",
      "Epoch 2/6, Training Loss: 0.4612\n",
      "Epoch 2/6, Training Loss: 0.4920\n",
      "Epoch 2/6, Training Loss: 0.3952\n",
      "Epoch 2/6, Training Loss: 0.2466\n",
      "Epoch 2/6, Training Loss: 0.5535\n",
      "Epoch 2/6, Training Loss: 0.4647\n",
      "Epoch 2/6, Training Loss: 0.4088\n",
      "Epoch 2/6, Training Loss: 0.3961\n",
      "Epoch 2/6, Training Loss: 0.5209\n",
      "Epoch 2/6, Training Loss: 0.4912\n",
      "Epoch 2/6, Training Loss: 0.5237\n",
      "Epoch 2/6, Training Loss: 0.4289\n",
      "Epoch 2/6, Training Loss: 0.2481\n",
      "Epoch 2/6, Training Loss: 0.4805\n",
      "Epoch 2/6, Training Loss: 0.4724\n",
      "Epoch 2/6, Training Loss: 0.3692\n",
      "Epoch 2/6, Training Loss: 0.2881\n",
      "Epoch 2/6, Training Loss: 0.5615\n",
      "Epoch 2/6, Training Loss: 0.5143\n",
      "Epoch 2/6, Training Loss: 0.4581\n",
      "Epoch 2/6, Training Loss: 0.4081\n",
      "Epoch 2/6, Training Loss: 0.4119\n",
      "Epoch 2/6, Training Loss: 0.3338\n",
      "Epoch 2/6, Training Loss: 0.5259\n",
      "Epoch 2/6, Training Loss: 0.5216\n",
      "Epoch 2/6, Training Loss: 0.3324\n",
      "Epoch 2/6, Training Loss: 0.4603\n",
      "Epoch 2/6, Training Loss: 0.3303\n",
      "Epoch 2/6, Training Loss: 0.3347\n",
      "Epoch 2/6, Training Loss: 0.3618\n",
      "Epoch 2/6, Training Loss: 0.3361\n",
      "Epoch 2/6, Training Loss: 0.3472\n",
      "Epoch 2/6, Training Loss: 0.2778\n",
      "Epoch 2/6, Training Loss: 0.3721\n",
      "Epoch 2/6, Training Loss: 0.4209\n",
      "Epoch 2/6, Training Loss: 0.5723\n",
      "Epoch 2/6, Training Loss: 0.4889\n",
      "Epoch 2/6, Training Loss: 0.6475\n",
      "Epoch 2/6, Training Loss: 0.3634\n",
      "Epoch 2/6, Training Loss: 0.4845\n",
      "Epoch 2/6, Training Loss: 0.4411\n",
      "Epoch 2/6, Training Loss: 0.4222\n",
      "Epoch 2/6, Training Loss: 0.3203\n",
      "Epoch 2/6, Training Loss: 0.3615\n",
      "Epoch 2/6, Training Loss: 0.5451\n",
      "Epoch 2/6, Training Loss: 0.5364\n",
      "Epoch 2/6, Training Loss: 0.4123\n",
      "Epoch 2/6, Training Loss: 0.3044\n",
      "Epoch 2/6, Training Loss: 0.4908\n",
      "Epoch 2/6, Training Loss: 0.4157\n",
      "Epoch 2/6, Training Loss: 0.3500\n",
      "Epoch 2/6, Training Loss: 0.4519\n",
      "Epoch 2/6, Training Loss: 0.4345\n",
      "Epoch 2/6, Training Loss: 0.5471\n",
      "Epoch 2/6, Training Loss: 0.4351\n",
      "Epoch 2/6, Training Loss: 0.3940\n",
      "Epoch 2/6, Training Loss: 0.7160\n",
      "Epoch 2/6, Training Loss: 0.4095\n",
      "Epoch 2/6, Training Loss: 0.3805\n",
      "Epoch 2/6, Training Loss: 0.4131\n",
      "Epoch 2/6, Training Loss: 0.3428\n",
      "Epoch 2/6, Training Loss: 0.4481\n",
      "Epoch 2/6, Training Loss: 0.4864\n",
      "Epoch 2/6, Training Loss: 0.4429\n",
      "Epoch 2/6, Training Loss: 0.4801\n",
      "Epoch 2/6, Training Loss: 0.5000\n",
      "Epoch 2/6, Training Loss: 0.3660\n",
      "Epoch 2/6, Training Loss: 0.4230\n",
      "Epoch 2/6, Training Loss: 0.4580\n",
      "Epoch 2/6, Training Loss: 0.3665\n",
      "Epoch 2/6, Training Loss: 0.2824\n",
      "Epoch 2/6, Training Loss: 0.2693\n",
      "Epoch 2/6, Training Loss: 0.3799\n",
      "Epoch 2/6, Training Loss: 0.6815\n",
      "Epoch 2/6, Training Loss: 0.4278\n",
      "Epoch 2/6, Training Loss: 0.4466\n",
      "Epoch 2/6, Training Loss: 0.4111\n",
      "Epoch 2/6, Training Loss: 0.5315\n",
      "Epoch 2/6, Training Loss: 0.3908\n",
      "Epoch 2/6, Training Loss: 0.2903\n",
      "Epoch 2/6, Training Loss: 0.4943\n",
      "Epoch 2/6, Training Loss: 0.5481\n",
      "Epoch 2/6, Training Loss: 0.4715\n",
      "Epoch 2/6, Training Loss: 0.5149\n",
      "Epoch 2/6, Training Loss: 0.2854\n",
      "Epoch 2/6, Training Loss: 0.3449\n",
      "Epoch 2/6, Training Loss: 0.2452\n",
      "Epoch 2/6, Training Loss: 0.4512\n",
      "Epoch 2/6, Training Loss: 0.3368\n",
      "Epoch 2/6, Training Loss: 0.5369\n",
      "Epoch 2/6, Training Loss: 0.5015\n",
      "Epoch 2/6, Training Loss: 0.3331\n",
      "Epoch 2/6, Training Loss: 0.3848\n",
      "Epoch 2/6, Training Loss: 0.3801\n",
      "Epoch 2/6, Training Loss: 0.3836\n",
      "Epoch 2/6, Training Loss: 0.3115\n",
      "Epoch 2/6, Training Loss: 0.5259\n",
      "Epoch 2/6, Training Loss: 0.4494\n",
      "Epoch 2/6, Training Loss: 0.3904\n",
      "Epoch 2/6, Training Loss: 0.2626\n",
      "Epoch 2/6, Training Loss: 0.1648\n",
      "Epoch 2/6, Training Loss: 0.3299\n",
      "Epoch 2/6, Training Loss: 0.2507\n",
      "Epoch 2/6, Training Loss: 0.2109\n",
      "Epoch 2/6, Training Loss: 0.2588\n",
      "Epoch 2/6, Training Loss: 0.5819\n",
      "Epoch 2/6, Training Loss: 0.5173\n",
      "Epoch 2/6, Training Loss: 0.3870\n",
      "Epoch 2/6, Training Loss: 0.2914\n",
      "Epoch 2/6, Training Loss: 0.2914, Cross-Validation Loss: 0.3913\n",
      "Epoch 3/6, Training Loss: 0.2309\n",
      "Epoch 3/6, Training Loss: 0.2275\n",
      "Epoch 3/6, Training Loss: 0.2283\n",
      "Epoch 3/6, Training Loss: 0.2764\n",
      "Epoch 3/6, Training Loss: 0.3422\n",
      "Epoch 3/6, Training Loss: 0.1880\n",
      "Epoch 3/6, Training Loss: 0.3634\n",
      "Epoch 3/6, Training Loss: 0.3160\n",
      "Epoch 3/6, Training Loss: 0.2282\n",
      "Epoch 3/6, Training Loss: 0.2669\n",
      "Epoch 3/6, Training Loss: 0.2630\n",
      "Epoch 3/6, Training Loss: 0.2097\n",
      "Epoch 3/6, Training Loss: 0.1772\n",
      "Epoch 3/6, Training Loss: 0.4195\n",
      "Epoch 3/6, Training Loss: 0.1995\n",
      "Epoch 3/6, Training Loss: 0.2666\n",
      "Epoch 3/6, Training Loss: 0.1320\n",
      "Epoch 3/6, Training Loss: 0.3831\n",
      "Epoch 3/6, Training Loss: 0.3491\n",
      "Epoch 3/6, Training Loss: 0.3265\n",
      "Epoch 3/6, Training Loss: 0.2016\n",
      "Epoch 3/6, Training Loss: 0.3309\n",
      "Epoch 3/6, Training Loss: 0.2152\n",
      "Epoch 3/6, Training Loss: 0.1882\n",
      "Epoch 3/6, Training Loss: 0.2295\n",
      "Epoch 3/6, Training Loss: 0.2063\n",
      "Epoch 3/6, Training Loss: 0.2264\n",
      "Epoch 3/6, Training Loss: 0.2536\n",
      "Epoch 3/6, Training Loss: 0.2543\n",
      "Epoch 3/6, Training Loss: 0.4638\n",
      "Epoch 3/6, Training Loss: 0.1649\n",
      "Epoch 3/6, Training Loss: 0.2316\n",
      "Epoch 3/6, Training Loss: 0.2426\n",
      "Epoch 3/6, Training Loss: 0.1919\n",
      "Epoch 3/6, Training Loss: 0.2798\n",
      "Epoch 3/6, Training Loss: 0.3587\n",
      "Epoch 3/6, Training Loss: 0.2238\n",
      "Epoch 3/6, Training Loss: 0.2037\n",
      "Epoch 3/6, Training Loss: 0.1248\n",
      "Epoch 3/6, Training Loss: 0.2370\n",
      "Epoch 3/6, Training Loss: 0.1550\n",
      "Epoch 3/6, Training Loss: 0.3707\n",
      "Epoch 3/6, Training Loss: 0.3482\n",
      "Epoch 3/6, Training Loss: 0.2599\n",
      "Epoch 3/6, Training Loss: 0.4163\n",
      "Epoch 3/6, Training Loss: 0.2218\n",
      "Epoch 3/6, Training Loss: 0.2962\n",
      "Epoch 3/6, Training Loss: 0.1924\n",
      "Epoch 3/6, Training Loss: 0.2672\n",
      "Epoch 3/6, Training Loss: 0.1589\n",
      "Epoch 3/6, Training Loss: 0.2986\n",
      "Epoch 3/6, Training Loss: 0.2326\n",
      "Epoch 3/6, Training Loss: 0.3108\n",
      "Epoch 3/6, Training Loss: 0.1648\n",
      "Epoch 3/6, Training Loss: 0.3612\n",
      "Epoch 3/6, Training Loss: 0.2666\n",
      "Epoch 3/6, Training Loss: 0.2497\n",
      "Epoch 3/6, Training Loss: 0.2989\n",
      "Epoch 3/6, Training Loss: 0.3340\n",
      "Epoch 3/6, Training Loss: 0.2208\n",
      "Epoch 3/6, Training Loss: 0.2111\n",
      "Epoch 3/6, Training Loss: 0.3331\n",
      "Epoch 3/6, Training Loss: 0.2174\n",
      "Epoch 3/6, Training Loss: 0.1506\n",
      "Epoch 3/6, Training Loss: 0.2356\n",
      "Epoch 3/6, Training Loss: 0.2164\n",
      "Epoch 3/6, Training Loss: 0.1969\n",
      "Epoch 3/6, Training Loss: 0.1994\n",
      "Epoch 3/6, Training Loss: 0.2967\n",
      "Epoch 3/6, Training Loss: 0.2827\n",
      "Epoch 3/6, Training Loss: 0.2756\n",
      "Epoch 3/6, Training Loss: 0.2176\n",
      "Epoch 3/6, Training Loss: 0.1401\n",
      "Epoch 3/6, Training Loss: 0.3465\n",
      "Epoch 3/6, Training Loss: 0.2208\n",
      "Epoch 3/6, Training Loss: 0.1152\n",
      "Epoch 3/6, Training Loss: 0.2369\n",
      "Epoch 3/6, Training Loss: 0.5227\n",
      "Epoch 3/6, Training Loss: 0.3417\n",
      "Epoch 3/6, Training Loss: 0.2591\n",
      "Epoch 3/6, Training Loss: 0.2738\n",
      "Epoch 3/6, Training Loss: 0.4076\n",
      "Epoch 3/6, Training Loss: 0.2057\n",
      "Epoch 3/6, Training Loss: 0.2387\n",
      "Epoch 3/6, Training Loss: 0.4112\n",
      "Epoch 3/6, Training Loss: 0.4398\n",
      "Epoch 3/6, Training Loss: 0.1988\n",
      "Epoch 3/6, Training Loss: 0.2610\n",
      "Epoch 3/6, Training Loss: 0.3160\n",
      "Epoch 3/6, Training Loss: 0.2599\n",
      "Epoch 3/6, Training Loss: 0.2479\n",
      "Epoch 3/6, Training Loss: 0.2428\n",
      "Epoch 3/6, Training Loss: 0.3688\n",
      "Epoch 3/6, Training Loss: 0.2617\n",
      "Epoch 3/6, Training Loss: 0.3418\n",
      "Epoch 3/6, Training Loss: 0.1467\n",
      "Epoch 3/6, Training Loss: 0.2528\n",
      "Epoch 3/6, Training Loss: 0.1915\n",
      "Epoch 3/6, Training Loss: 0.3540\n",
      "Epoch 3/6, Training Loss: 0.1544\n",
      "Epoch 3/6, Training Loss: 0.2970\n",
      "Epoch 3/6, Training Loss: 0.2245\n",
      "Epoch 3/6, Training Loss: 0.2573\n",
      "Epoch 3/6, Training Loss: 0.3394\n",
      "Epoch 3/6, Training Loss: 0.3144\n",
      "Epoch 3/6, Training Loss: 0.2341\n",
      "Epoch 3/6, Training Loss: 0.2131\n",
      "Epoch 3/6, Training Loss: 0.1365\n",
      "Epoch 3/6, Training Loss: 0.1441\n",
      "Epoch 3/6, Training Loss: 0.2933\n",
      "Epoch 3/6, Training Loss: 0.2993\n",
      "Epoch 3/6, Training Loss: 0.2401\n",
      "Epoch 3/6, Training Loss: 0.2478\n",
      "Epoch 3/6, Training Loss: 0.3402\n",
      "Epoch 3/6, Training Loss: 0.2933\n",
      "Epoch 3/6, Training Loss: 0.5773\n",
      "Epoch 3/6, Training Loss: 0.1974\n",
      "Epoch 3/6, Training Loss: 0.1528\n",
      "Epoch 3/6, Training Loss: 0.2003\n",
      "Epoch 3/6, Training Loss: 0.2778\n",
      "Epoch 3/6, Training Loss: 0.2254\n",
      "Epoch 3/6, Training Loss: 0.2032\n",
      "Epoch 3/6, Training Loss: 0.2748\n",
      "Epoch 3/6, Training Loss: 0.2342\n",
      "Epoch 3/6, Training Loss: 0.3116\n",
      "Epoch 3/6, Training Loss: 0.2495\n",
      "Epoch 3/6, Training Loss: 0.4040\n",
      "Epoch 3/6, Training Loss: 0.4196\n",
      "Epoch 3/6, Training Loss: 0.1545\n",
      "Epoch 3/6, Training Loss: 0.2356\n",
      "Epoch 3/6, Training Loss: 0.4345\n",
      "Epoch 3/6, Training Loss: 0.1060\n",
      "Epoch 3/6, Training Loss: 0.4540\n",
      "Epoch 3/6, Training Loss: 0.1471\n",
      "Epoch 3/6, Training Loss: 0.3340\n",
      "Epoch 3/6, Training Loss: 0.2743\n",
      "Epoch 3/6, Training Loss: 0.3155\n",
      "Epoch 3/6, Training Loss: 0.2819\n",
      "Epoch 3/6, Training Loss: 0.4872\n",
      "Epoch 3/6, Training Loss: 0.3289\n",
      "Epoch 3/6, Training Loss: 0.5247\n",
      "Epoch 3/6, Training Loss: 0.1679\n",
      "Epoch 3/6, Training Loss: 0.1905\n",
      "Epoch 3/6, Training Loss: 0.2438\n",
      "Epoch 3/6, Training Loss: 0.1794\n",
      "Epoch 3/6, Training Loss: 0.4203\n",
      "Epoch 3/6, Training Loss: 0.3373\n",
      "Epoch 3/6, Training Loss: 0.3007\n",
      "Epoch 3/6, Training Loss: 0.3521\n",
      "Epoch 3/6, Training Loss: 0.4063\n",
      "Epoch 3/6, Training Loss: 0.2117\n",
      "Epoch 3/6, Training Loss: 0.2491\n",
      "Epoch 3/6, Training Loss: 0.2871\n",
      "Epoch 3/6, Training Loss: 0.2603\n",
      "Epoch 3/6, Training Loss: 0.3241\n",
      "Epoch 3/6, Training Loss: 0.3105\n",
      "Epoch 3/6, Training Loss: 0.3701\n",
      "Epoch 3/6, Training Loss: 0.2095\n",
      "Epoch 3/6, Training Loss: 0.2966\n",
      "Epoch 3/6, Training Loss: 0.3325\n",
      "Epoch 3/6, Training Loss: 0.1054\n",
      "Epoch 3/6, Training Loss: 0.2372\n",
      "Epoch 3/6, Training Loss: 0.2306\n",
      "Epoch 3/6, Training Loss: 0.2212\n",
      "Epoch 3/6, Training Loss: 0.2646\n",
      "Epoch 3/6, Training Loss: 0.3021\n",
      "Epoch 3/6, Training Loss: 0.1890\n",
      "Epoch 3/6, Training Loss: 0.4616\n",
      "Epoch 3/6, Training Loss: 0.4539\n",
      "Epoch 3/6, Training Loss: 0.3243\n",
      "Epoch 3/6, Training Loss: 0.2748\n",
      "Epoch 3/6, Training Loss: 0.1608\n",
      "Epoch 3/6, Training Loss: 0.2374\n",
      "Epoch 3/6, Training Loss: 0.3356\n",
      "Epoch 3/6, Training Loss: 0.2886\n",
      "Epoch 3/6, Training Loss: 0.1950\n",
      "Epoch 3/6, Training Loss: 0.2831\n",
      "Epoch 3/6, Training Loss: 0.2394\n",
      "Epoch 3/6, Training Loss: 0.2493\n",
      "Epoch 3/6, Training Loss: 0.3122\n",
      "Epoch 3/6, Training Loss: 0.3570\n",
      "Epoch 3/6, Training Loss: 0.2006\n",
      "Epoch 3/6, Training Loss: 0.2881\n",
      "Epoch 3/6, Training Loss: 0.2268\n",
      "Epoch 3/6, Training Loss: 0.3365\n",
      "Epoch 3/6, Training Loss: 0.2385\n",
      "Epoch 3/6, Training Loss: 0.3794\n",
      "Epoch 3/6, Training Loss: 0.3063\n",
      "Epoch 3/6, Training Loss: 0.2203\n",
      "Epoch 3/6, Training Loss: 0.3318\n",
      "Epoch 3/6, Training Loss: 0.3671\n",
      "Epoch 3/6, Training Loss: 0.3933\n",
      "Epoch 3/6, Training Loss: 0.4324\n",
      "Epoch 3/6, Training Loss: 0.3124\n",
      "Epoch 3/6, Training Loss: 0.1873\n",
      "Epoch 3/6, Training Loss: 0.2743\n",
      "Epoch 3/6, Training Loss: 0.6102\n",
      "Epoch 3/6, Training Loss: 0.3076\n",
      "Epoch 3/6, Training Loss: 0.2706\n",
      "Epoch 3/6, Training Loss: 0.1173\n",
      "Epoch 3/6, Training Loss: 0.3157\n",
      "Epoch 3/6, Training Loss: 0.2288\n",
      "Epoch 3/6, Training Loss: 0.3263\n",
      "Epoch 3/6, Training Loss: 0.2466\n",
      "Epoch 3/6, Training Loss: 0.2319\n",
      "Epoch 3/6, Training Loss: 0.3148\n",
      "Epoch 3/6, Training Loss: 0.4573\n",
      "Epoch 3/6, Training Loss: 0.1363\n",
      "Epoch 3/6, Training Loss: 0.3001\n",
      "Epoch 3/6, Training Loss: 0.1874\n",
      "Epoch 3/6, Training Loss: 0.5084\n",
      "Epoch 3/6, Training Loss: 0.3133\n",
      "Epoch 3/6, Training Loss: 0.3224\n",
      "Epoch 3/6, Training Loss: 0.1042\n",
      "Epoch 3/6, Training Loss: 0.2615\n",
      "Epoch 3/6, Training Loss: 0.2457\n",
      "Epoch 3/6, Training Loss: 0.5694\n",
      "Epoch 3/6, Training Loss: 0.1489\n",
      "Epoch 3/6, Training Loss: 0.3616\n",
      "Epoch 3/6, Training Loss: 0.4066\n",
      "Epoch 3/6, Training Loss: 0.2602\n",
      "Epoch 3/6, Training Loss: 0.5332\n",
      "Epoch 3/6, Training Loss: 0.4539\n",
      "Epoch 3/6, Training Loss: 0.3183\n",
      "Epoch 3/6, Training Loss: 0.3987\n",
      "Epoch 3/6, Training Loss: 0.3567\n",
      "Epoch 3/6, Training Loss: 0.2969\n",
      "Epoch 3/6, Training Loss: 0.4707\n",
      "Epoch 3/6, Training Loss: 0.4314\n",
      "Epoch 3/6, Training Loss: 0.1695\n",
      "Epoch 3/6, Training Loss: 0.4426\n",
      "Epoch 3/6, Training Loss: 0.3821\n",
      "Epoch 3/6, Training Loss: 0.3651\n",
      "Epoch 3/6, Training Loss: 0.3340\n",
      "Epoch 3/6, Training Loss: 0.5460\n",
      "Epoch 3/6, Training Loss: 0.2093\n",
      "Epoch 3/6, Training Loss: 0.2894\n",
      "Epoch 3/6, Training Loss: 0.2565\n",
      "Epoch 3/6, Training Loss: 0.4353\n",
      "Epoch 3/6, Training Loss: 0.3496\n",
      "Epoch 3/6, Training Loss: 0.2411\n",
      "Epoch 3/6, Training Loss: 0.1775\n",
      "Epoch 3/6, Training Loss: 0.3725\n",
      "Epoch 3/6, Training Loss: 0.2314\n",
      "Epoch 3/6, Training Loss: 0.4301\n",
      "Epoch 3/6, Training Loss: 0.3339\n",
      "Epoch 3/6, Training Loss: 0.4849\n",
      "Epoch 3/6, Training Loss: 0.5274\n",
      "Epoch 3/6, Training Loss: 0.3915\n",
      "Epoch 3/6, Training Loss: 0.3786\n",
      "Epoch 3/6, Training Loss: 0.2582\n",
      "Epoch 3/6, Training Loss: 0.3488\n",
      "Epoch 3/6, Training Loss: 0.1705\n",
      "Epoch 3/6, Training Loss: 0.2800\n",
      "Epoch 3/6, Training Loss: 0.2933\n",
      "Epoch 3/6, Training Loss: 0.2716\n",
      "Epoch 3/6, Training Loss: 0.2128\n",
      "Epoch 3/6, Training Loss: 0.2919\n",
      "Epoch 3/6, Training Loss: 0.2901\n",
      "Epoch 3/6, Training Loss: 0.4503\n",
      "Epoch 3/6, Training Loss: 0.3332\n",
      "Epoch 3/6, Training Loss: 0.2396\n",
      "Epoch 3/6, Training Loss: 0.3184\n",
      "Epoch 3/6, Training Loss: 0.1426\n",
      "Epoch 3/6, Training Loss: 0.2877\n",
      "Epoch 3/6, Training Loss: 0.3837\n",
      "Epoch 3/6, Training Loss: 0.3426\n",
      "Epoch 3/6, Training Loss: 0.3445\n",
      "Epoch 3/6, Training Loss: 0.2247\n",
      "Epoch 3/6, Training Loss: 0.1714\n",
      "Epoch 3/6, Training Loss: 0.2321\n",
      "Epoch 3/6, Training Loss: 0.3169\n",
      "Epoch 3/6, Training Loss: 0.3865\n",
      "Epoch 3/6, Training Loss: 0.2505\n",
      "Epoch 3/6, Training Loss: 0.3106\n",
      "Epoch 3/6, Training Loss: 0.4184\n",
      "Epoch 3/6, Training Loss: 0.1828\n",
      "Epoch 3/6, Training Loss: 0.5028\n",
      "Epoch 3/6, Training Loss: 0.2585\n",
      "Epoch 3/6, Training Loss: 0.2802\n",
      "Epoch 3/6, Training Loss: 0.3202\n",
      "Epoch 3/6, Training Loss: 0.2336\n",
      "Epoch 3/6, Training Loss: 0.3330\n",
      "Epoch 3/6, Training Loss: 0.2172\n",
      "Epoch 3/6, Training Loss: 0.5179\n",
      "Epoch 3/6, Training Loss: 0.4155\n",
      "Epoch 3/6, Training Loss: 0.3794\n",
      "Epoch 3/6, Training Loss: 0.2574\n",
      "Epoch 3/6, Training Loss: 0.3675\n",
      "Epoch 3/6, Training Loss: 0.3800\n",
      "Epoch 3/6, Training Loss: 0.3866\n",
      "Epoch 3/6, Training Loss: 0.2694\n",
      "Epoch 3/6, Training Loss: 0.2795\n",
      "Epoch 3/6, Training Loss: 0.4683\n",
      "Epoch 3/6, Training Loss: 0.1724\n",
      "Epoch 3/6, Training Loss: 0.1428\n",
      "Epoch 3/6, Training Loss: 0.3347\n",
      "Epoch 3/6, Training Loss: 0.4264\n",
      "Epoch 3/6, Training Loss: 0.2411\n",
      "Epoch 3/6, Training Loss: 0.5201\n",
      "Epoch 3/6, Training Loss: 0.4140\n",
      "Epoch 3/6, Training Loss: 0.2730\n",
      "Epoch 3/6, Training Loss: 0.2530\n",
      "Epoch 3/6, Training Loss: 0.3104\n",
      "Epoch 3/6, Training Loss: 0.4754\n",
      "Epoch 3/6, Training Loss: 0.4009\n",
      "Epoch 3/6, Training Loss: 0.2986\n",
      "Epoch 3/6, Training Loss: 0.4032\n",
      "Epoch 3/6, Training Loss: 0.4771\n",
      "Epoch 3/6, Training Loss: 0.5185\n",
      "Epoch 3/6, Training Loss: 0.4481\n",
      "Epoch 3/6, Training Loss: 0.2924\n",
      "Epoch 3/6, Training Loss: 0.3368\n",
      "Epoch 3/6, Training Loss: 0.3423\n",
      "Epoch 3/6, Training Loss: 0.3545\n",
      "Epoch 3/6, Training Loss: 0.3054\n",
      "Epoch 3/6, Training Loss: 0.2252\n",
      "Epoch 3/6, Training Loss: 0.3356\n",
      "Epoch 3/6, Training Loss: 0.3488\n",
      "Epoch 3/6, Training Loss: 0.3137\n",
      "Epoch 3/6, Training Loss: 0.3500\n",
      "Epoch 3/6, Training Loss: 0.3906\n",
      "Epoch 3/6, Training Loss: 0.4940\n",
      "Epoch 3/6, Training Loss: 0.4410\n",
      "Epoch 3/6, Training Loss: 0.2445\n",
      "Epoch 3/6, Training Loss: 0.3962\n",
      "Epoch 3/6, Training Loss: 0.5492\n",
      "Epoch 3/6, Training Loss: 0.3418\n",
      "Epoch 3/6, Training Loss: 0.3727\n",
      "Epoch 3/6, Training Loss: 0.2299\n",
      "Epoch 3/6, Training Loss: 0.2755\n",
      "Epoch 3/6, Training Loss: 0.2306\n",
      "Epoch 3/6, Training Loss: 0.2762\n",
      "Epoch 3/6, Training Loss: 0.2896\n",
      "Epoch 3/6, Training Loss: 0.2065\n",
      "Epoch 3/6, Training Loss: 0.4056\n",
      "Epoch 3/6, Training Loss: 0.2726\n",
      "Epoch 3/6, Training Loss: 0.3559\n",
      "Epoch 3/6, Training Loss: 0.5115\n",
      "Epoch 3/6, Training Loss: 0.2840\n",
      "Epoch 3/6, Training Loss: 0.3509\n",
      "Epoch 3/6, Training Loss: 0.2279\n",
      "Epoch 3/6, Training Loss: 0.3320\n",
      "Epoch 3/6, Training Loss: 0.1525\n",
      "Epoch 3/6, Training Loss: 0.1990\n",
      "Epoch 3/6, Training Loss: 0.3953\n",
      "Epoch 3/6, Training Loss: 0.4780\n",
      "Epoch 3/6, Training Loss: 0.1563\n",
      "Epoch 3/6, Training Loss: 0.4800\n",
      "Epoch 3/6, Training Loss: 0.2488\n",
      "Epoch 3/6, Training Loss: 0.3633\n",
      "Epoch 3/6, Training Loss: 0.2867\n",
      "Epoch 3/6, Training Loss: 0.3520\n",
      "Epoch 3/6, Training Loss: 0.3232\n",
      "Epoch 3/6, Training Loss: 0.1720\n",
      "Epoch 3/6, Training Loss: 0.5868\n",
      "Epoch 3/6, Training Loss: 0.3944\n",
      "Epoch 3/6, Training Loss: 0.2968\n",
      "Epoch 3/6, Training Loss: 0.1626\n",
      "Epoch 3/6, Training Loss: 0.1668\n",
      "Epoch 3/6, Training Loss: 0.4427\n",
      "Epoch 3/6, Training Loss: 0.2104\n",
      "Epoch 3/6, Training Loss: 0.2711\n",
      "Epoch 3/6, Training Loss: 0.2825\n",
      "Epoch 3/6, Training Loss: 0.3170\n",
      "Epoch 3/6, Training Loss: 0.3174\n",
      "Epoch 3/6, Training Loss: 0.1998\n",
      "Epoch 3/6, Training Loss: 0.3082\n",
      "Epoch 3/6, Training Loss: 0.3900\n",
      "Epoch 3/6, Training Loss: 0.2106\n",
      "Epoch 3/6, Training Loss: 0.4802\n",
      "Epoch 3/6, Training Loss: 0.2994\n",
      "Epoch 3/6, Training Loss: 0.3188\n",
      "Epoch 3/6, Training Loss: 0.3535\n",
      "Epoch 3/6, Training Loss: 0.3764\n",
      "Epoch 3/6, Training Loss: 0.2211\n",
      "Epoch 3/6, Training Loss: 0.4214\n",
      "Epoch 3/6, Training Loss: 0.4293\n",
      "Epoch 3/6, Training Loss: 0.2490\n",
      "Epoch 3/6, Training Loss: 0.1236\n",
      "Epoch 3/6, Training Loss: 0.0967\n",
      "Epoch 3/6, Training Loss: 0.5959\n",
      "Epoch 3/6, Training Loss: 0.3630\n",
      "Epoch 3/6, Training Loss: 0.3326\n",
      "Epoch 3/6, Training Loss: 0.2381\n",
      "Epoch 3/6, Training Loss: 0.2224\n",
      "Epoch 3/6, Training Loss: 0.5175\n",
      "Epoch 3/6, Training Loss: 0.2258\n",
      "Epoch 3/6, Training Loss: 0.3617\n",
      "Epoch 3/6, Training Loss: 0.3702\n",
      "Epoch 3/6, Training Loss: 0.2904\n",
      "Epoch 3/6, Training Loss: 0.1869\n",
      "Epoch 3/6, Training Loss: 0.3273\n",
      "Epoch 3/6, Training Loss: 0.4097\n",
      "Epoch 3/6, Training Loss: 0.3293\n",
      "Epoch 3/6, Training Loss: 0.3675\n",
      "Epoch 3/6, Training Loss: 0.3625\n",
      "Epoch 3/6, Training Loss: 0.3257\n",
      "Epoch 3/6, Training Loss: 0.3150\n",
      "Epoch 3/6, Training Loss: 0.2590\n",
      "Epoch 3/6, Training Loss: 0.2900\n",
      "Epoch 3/6, Training Loss: 0.3222\n",
      "Epoch 3/6, Training Loss: 0.3079\n",
      "Epoch 3/6, Training Loss: 0.3169\n",
      "Epoch 3/6, Training Loss: 0.2071\n",
      "Epoch 3/6, Training Loss: 0.4758\n",
      "Epoch 3/6, Training Loss: 0.3632\n",
      "Epoch 3/6, Training Loss: 0.4770\n",
      "Epoch 3/6, Training Loss: 0.2627\n",
      "Epoch 3/6, Training Loss: 0.3162\n",
      "Epoch 3/6, Training Loss: 0.3782\n",
      "Epoch 3/6, Training Loss: 0.4310\n",
      "Epoch 3/6, Training Loss: 0.2280\n",
      "Epoch 3/6, Training Loss: 0.2152\n",
      "Epoch 3/6, Training Loss: 0.1527\n",
      "Epoch 3/6, Training Loss: 0.3497\n",
      "Epoch 3/6, Training Loss: 0.4867\n",
      "Epoch 3/6, Training Loss: 0.3926\n",
      "Epoch 3/6, Training Loss: 0.4464\n",
      "Epoch 3/6, Training Loss: 0.5016\n",
      "Epoch 3/6, Training Loss: 0.3407\n",
      "Epoch 3/6, Training Loss: 0.4261\n",
      "Epoch 3/6, Training Loss: 0.5851\n",
      "Epoch 3/6, Training Loss: 0.3429\n",
      "Epoch 3/6, Training Loss: 0.2463\n",
      "Epoch 3/6, Training Loss: 0.2480\n",
      "Epoch 3/6, Training Loss: 0.2660\n",
      "Epoch 3/6, Training Loss: 0.3440\n",
      "Epoch 3/6, Training Loss: 0.4117\n",
      "Epoch 3/6, Training Loss: 0.1768\n",
      "Epoch 3/6, Training Loss: 0.2984\n",
      "Epoch 3/6, Training Loss: 0.3924\n",
      "Epoch 3/6, Training Loss: 0.4509\n",
      "Epoch 3/6, Training Loss: 0.2992\n",
      "Epoch 3/6, Training Loss: 0.2888\n",
      "Epoch 3/6, Training Loss: 0.2367\n",
      "Epoch 3/6, Training Loss: 0.4742\n",
      "Epoch 3/6, Training Loss: 0.2203\n",
      "Epoch 3/6, Training Loss: 0.5059\n",
      "Epoch 3/6, Training Loss: 0.5940\n",
      "Epoch 3/6, Training Loss: 0.2717\n",
      "Epoch 3/6, Training Loss: 0.3730\n",
      "Epoch 3/6, Training Loss: 0.3008\n",
      "Epoch 3/6, Training Loss: 0.2722\n",
      "Epoch 3/6, Training Loss: 0.1803\n",
      "Epoch 3/6, Training Loss: 0.2428\n",
      "Epoch 3/6, Training Loss: 0.2810\n",
      "Epoch 3/6, Training Loss: 0.3413\n",
      "Epoch 3/6, Training Loss: 0.3416\n",
      "Epoch 3/6, Training Loss: 0.3501\n",
      "Epoch 3/6, Training Loss: 0.3532\n",
      "Epoch 3/6, Training Loss: 0.2791\n",
      "Epoch 3/6, Training Loss: 0.2761\n",
      "Epoch 3/6, Training Loss: 0.2303\n",
      "Epoch 3/6, Training Loss: 0.4484\n",
      "Epoch 3/6, Training Loss: 0.3926\n",
      "Epoch 3/6, Training Loss: 0.4475\n",
      "Epoch 3/6, Training Loss: 0.2727\n",
      "Epoch 3/6, Training Loss: 0.3768\n",
      "Epoch 3/6, Training Loss: 0.3288\n",
      "Epoch 3/6, Training Loss: 0.3379\n",
      "Epoch 3/6, Training Loss: 0.3559\n",
      "Epoch 3/6, Training Loss: 0.4325\n",
      "Epoch 3/6, Training Loss: 0.3551\n",
      "Epoch 3/6, Training Loss: 0.2748\n",
      "Epoch 3/6, Training Loss: 0.2542\n",
      "Epoch 3/6, Training Loss: 0.3320\n",
      "Epoch 3/6, Training Loss: 0.2802\n",
      "Epoch 3/6, Training Loss: 0.3330\n",
      "Epoch 3/6, Training Loss: 0.2714\n",
      "Epoch 3/6, Training Loss: 0.3520\n",
      "Epoch 3/6, Training Loss: 0.2390\n",
      "Epoch 3/6, Training Loss: 0.2218\n",
      "Epoch 3/6, Training Loss: 0.3158\n",
      "Epoch 3/6, Training Loss: 0.2054\n",
      "Epoch 3/6, Training Loss: 0.2960\n",
      "Epoch 3/6, Training Loss: 0.3169\n",
      "Epoch 3/6, Training Loss: 0.5430\n",
      "Epoch 3/6, Training Loss: 0.2497\n",
      "Epoch 3/6, Training Loss: 0.2686\n",
      "Epoch 3/6, Training Loss: 0.2380\n",
      "Epoch 3/6, Training Loss: 0.2150\n",
      "Epoch 3/6, Training Loss: 0.3495\n",
      "Epoch 3/6, Training Loss: 0.2937\n",
      "Epoch 3/6, Training Loss: 0.2020\n",
      "Epoch 3/6, Training Loss: 0.4615\n",
      "Epoch 3/6, Training Loss: 0.2329\n",
      "Epoch 3/6, Training Loss: 0.2089\n",
      "Epoch 3/6, Training Loss: 0.4398\n",
      "Epoch 3/6, Training Loss: 0.3402\n",
      "Epoch 3/6, Training Loss: 0.3189\n",
      "Epoch 3/6, Training Loss: 0.1969\n",
      "Epoch 3/6, Training Loss: 0.2742\n",
      "Epoch 3/6, Training Loss: 0.4512\n",
      "Epoch 3/6, Training Loss: 0.3076\n",
      "Epoch 3/6, Training Loss: 0.4817\n",
      "Epoch 3/6, Training Loss: 0.3852\n",
      "Epoch 3/6, Training Loss: 0.3315\n",
      "Epoch 3/6, Training Loss: 0.2248\n",
      "Epoch 3/6, Training Loss: 0.2262\n",
      "Epoch 3/6, Training Loss: 0.2650\n",
      "Epoch 3/6, Training Loss: 0.3408\n",
      "Epoch 3/6, Training Loss: 0.2525\n",
      "Epoch 3/6, Training Loss: 0.3304\n",
      "Epoch 3/6, Training Loss: 0.3361\n",
      "Epoch 3/6, Training Loss: 0.5795\n",
      "Epoch 3/6, Training Loss: 0.4908\n",
      "Epoch 3/6, Training Loss: 0.3482\n",
      "Epoch 3/6, Training Loss: 0.4789\n",
      "Epoch 3/6, Training Loss: 0.3539\n",
      "Epoch 3/6, Training Loss: 0.4269\n",
      "Epoch 3/6, Training Loss: 0.5043\n",
      "Epoch 3/6, Training Loss: 0.3624\n",
      "Epoch 3/6, Training Loss: 0.3484\n",
      "Epoch 3/6, Training Loss: 0.4202\n",
      "Epoch 3/6, Training Loss: 0.3858\n",
      "Epoch 3/6, Training Loss: 0.1209\n",
      "Epoch 3/6, Training Loss: 0.5535\n",
      "Epoch 3/6, Training Loss: 0.2645\n",
      "Epoch 3/6, Training Loss: 0.2286\n",
      "Epoch 3/6, Training Loss: 0.3237\n",
      "Epoch 3/6, Training Loss: 0.4524\n",
      "Epoch 3/6, Training Loss: 0.4150\n",
      "Epoch 3/6, Training Loss: 0.3201\n",
      "Epoch 3/6, Training Loss: 0.2277\n",
      "Epoch 3/6, Training Loss: 0.3856\n",
      "Epoch 3/6, Training Loss: 0.3650\n",
      "Epoch 3/6, Training Loss: 0.2885\n",
      "Epoch 3/6, Training Loss: 0.3126\n",
      "Epoch 3/6, Training Loss: 0.3242\n",
      "Epoch 3/6, Training Loss: 0.3780\n",
      "Epoch 3/6, Training Loss: 0.2640\n",
      "Epoch 3/6, Training Loss: 0.4240\n",
      "Epoch 3/6, Training Loss: 0.3498\n",
      "Epoch 3/6, Training Loss: 0.3276\n",
      "Epoch 3/6, Training Loss: 0.3947\n",
      "Epoch 3/6, Training Loss: 0.2969\n",
      "Epoch 3/6, Training Loss: 0.3305\n",
      "Epoch 3/6, Training Loss: 0.1823\n",
      "Epoch 3/6, Training Loss: 0.1902\n",
      "Epoch 3/6, Training Loss: 0.2117\n",
      "Epoch 3/6, Training Loss: 0.4326\n",
      "Epoch 3/6, Training Loss: 0.4258\n",
      "Epoch 3/6, Training Loss: 0.2150\n",
      "Epoch 3/6, Training Loss: 0.2087\n",
      "Epoch 3/6, Training Loss: 0.3153\n",
      "Epoch 3/6, Training Loss: 0.3378\n",
      "Epoch 3/6, Training Loss: 0.2261\n",
      "Epoch 3/6, Training Loss: 0.2961\n",
      "Epoch 3/6, Training Loss: 0.4304\n",
      "Epoch 3/6, Training Loss: 0.3056\n",
      "Epoch 3/6, Training Loss: 0.2097\n",
      "Epoch 3/6, Training Loss: 0.5011\n",
      "Epoch 3/6, Training Loss: 0.2466\n",
      "Epoch 3/6, Training Loss: 0.3324\n",
      "Epoch 3/6, Training Loss: 0.3678\n",
      "Epoch 3/6, Training Loss: 0.3678, Cross-Validation Loss: 0.4780\n",
      "Epoch 4/6, Training Loss: 0.1726\n",
      "Epoch 4/6, Training Loss: 0.2124\n",
      "Epoch 4/6, Training Loss: 0.1864\n",
      "Epoch 4/6, Training Loss: 0.0992\n",
      "Epoch 4/6, Training Loss: 0.2148\n",
      "Epoch 4/6, Training Loss: 0.1533\n",
      "Epoch 4/6, Training Loss: 0.2178\n",
      "Epoch 4/6, Training Loss: 0.2721\n",
      "Epoch 4/6, Training Loss: 0.3012\n",
      "Epoch 4/6, Training Loss: 0.1249\n",
      "Epoch 4/6, Training Loss: 0.3618\n",
      "Epoch 4/6, Training Loss: 0.1266\n",
      "Epoch 4/6, Training Loss: 0.2164\n",
      "Epoch 4/6, Training Loss: 0.1289\n",
      "Epoch 4/6, Training Loss: 0.1439\n",
      "Epoch 4/6, Training Loss: 0.1905\n",
      "Epoch 4/6, Training Loss: 0.2237\n",
      "Epoch 4/6, Training Loss: 0.3981\n",
      "Epoch 4/6, Training Loss: 0.2081\n",
      "Epoch 4/6, Training Loss: 0.2041\n",
      "Epoch 4/6, Training Loss: 0.2620\n",
      "Epoch 4/6, Training Loss: 0.1272\n",
      "Epoch 4/6, Training Loss: 0.1498\n",
      "Epoch 4/6, Training Loss: 0.1472\n",
      "Epoch 4/6, Training Loss: 0.2615\n",
      "Epoch 4/6, Training Loss: 0.1770\n",
      "Epoch 4/6, Training Loss: 0.1632\n",
      "Epoch 4/6, Training Loss: 0.1892\n",
      "Epoch 4/6, Training Loss: 0.2548\n",
      "Epoch 4/6, Training Loss: 0.1471\n",
      "Epoch 4/6, Training Loss: 0.1226\n",
      "Epoch 4/6, Training Loss: 0.2125\n",
      "Epoch 4/6, Training Loss: 0.2664\n",
      "Epoch 4/6, Training Loss: 0.2735\n",
      "Epoch 4/6, Training Loss: 0.1385\n",
      "Epoch 4/6, Training Loss: 0.1583\n",
      "Epoch 4/6, Training Loss: 0.2255\n",
      "Epoch 4/6, Training Loss: 0.0809\n",
      "Epoch 4/6, Training Loss: 0.1518\n",
      "Epoch 4/6, Training Loss: 0.1756\n",
      "Epoch 4/6, Training Loss: 0.2375\n",
      "Epoch 4/6, Training Loss: 0.1778\n",
      "Epoch 4/6, Training Loss: 0.0899\n",
      "Epoch 4/6, Training Loss: 0.3100\n",
      "Epoch 4/6, Training Loss: 0.1843\n",
      "Epoch 4/6, Training Loss: 0.2836\n",
      "Epoch 4/6, Training Loss: 0.1275\n",
      "Epoch 4/6, Training Loss: 0.1041\n",
      "Epoch 4/6, Training Loss: 0.2763\n",
      "Epoch 4/6, Training Loss: 0.1722\n",
      "Epoch 4/6, Training Loss: 0.1091\n",
      "Epoch 4/6, Training Loss: 0.2183\n",
      "Epoch 4/6, Training Loss: 0.1915\n",
      "Epoch 4/6, Training Loss: 0.1553\n",
      "Epoch 4/6, Training Loss: 0.2104\n",
      "Epoch 4/6, Training Loss: 0.2223\n",
      "Epoch 4/6, Training Loss: 0.2587\n",
      "Epoch 4/6, Training Loss: 0.1354\n",
      "Epoch 4/6, Training Loss: 0.1509\n",
      "Epoch 4/6, Training Loss: 0.1512\n",
      "Epoch 4/6, Training Loss: 0.1095\n",
      "Epoch 4/6, Training Loss: 0.1838\n",
      "Epoch 4/6, Training Loss: 0.1661\n",
      "Epoch 4/6, Training Loss: 0.1055\n",
      "Epoch 4/6, Training Loss: 0.3029\n",
      "Epoch 4/6, Training Loss: 0.0187\n",
      "Epoch 4/6, Training Loss: 0.1041\n",
      "Epoch 4/6, Training Loss: 0.1867\n",
      "Epoch 4/6, Training Loss: 0.1984\n",
      "Epoch 4/6, Training Loss: 0.1989\n",
      "Epoch 4/6, Training Loss: 0.1339\n",
      "Epoch 4/6, Training Loss: 0.1871\n",
      "Epoch 4/6, Training Loss: 0.0813\n",
      "Epoch 4/6, Training Loss: 0.2634\n",
      "Epoch 4/6, Training Loss: 0.1278\n",
      "Epoch 4/6, Training Loss: 0.1118\n",
      "Epoch 4/6, Training Loss: 0.1434\n",
      "Epoch 4/6, Training Loss: 0.2181\n",
      "Epoch 4/6, Training Loss: 0.1831\n",
      "Epoch 4/6, Training Loss: 0.2165\n",
      "Epoch 4/6, Training Loss: 0.1265\n",
      "Epoch 4/6, Training Loss: 0.1150\n",
      "Epoch 4/6, Training Loss: 0.0432\n",
      "Epoch 4/6, Training Loss: 0.2200\n",
      "Epoch 4/6, Training Loss: 0.1581\n",
      "Epoch 4/6, Training Loss: 0.3450\n",
      "Epoch 4/6, Training Loss: 0.1759\n",
      "Epoch 4/6, Training Loss: 0.1607\n",
      "Epoch 4/6, Training Loss: 0.3455\n",
      "Epoch 4/6, Training Loss: 0.0894\n",
      "Epoch 4/6, Training Loss: 0.1352\n",
      "Epoch 4/6, Training Loss: 0.3419\n",
      "Epoch 4/6, Training Loss: 0.2494\n",
      "Epoch 4/6, Training Loss: 0.1929\n",
      "Epoch 4/6, Training Loss: 0.1068\n",
      "Epoch 4/6, Training Loss: 0.1450\n",
      "Epoch 4/6, Training Loss: 0.1381\n",
      "Epoch 4/6, Training Loss: 0.1911\n",
      "Epoch 4/6, Training Loss: 0.2020\n",
      "Epoch 4/6, Training Loss: 0.3873\n",
      "Epoch 4/6, Training Loss: 0.1906\n",
      "Epoch 4/6, Training Loss: 0.2782\n",
      "Epoch 4/6, Training Loss: 0.2276\n",
      "Epoch 4/6, Training Loss: 0.2072\n",
      "Epoch 4/6, Training Loss: 0.2490\n",
      "Epoch 4/6, Training Loss: 0.0545\n",
      "Epoch 4/6, Training Loss: 0.1683\n",
      "Epoch 4/6, Training Loss: 0.2236\n",
      "Epoch 4/6, Training Loss: 0.1617\n",
      "Epoch 4/6, Training Loss: 0.2939\n",
      "Epoch 4/6, Training Loss: 0.2183\n",
      "Epoch 4/6, Training Loss: 0.1996\n",
      "Epoch 4/6, Training Loss: 0.1651\n",
      "Epoch 4/6, Training Loss: 0.1411\n",
      "Epoch 4/6, Training Loss: 0.1546\n",
      "Epoch 4/6, Training Loss: 0.2562\n",
      "Epoch 4/6, Training Loss: 0.2682\n",
      "Epoch 4/6, Training Loss: 0.1498\n",
      "Epoch 4/6, Training Loss: 0.1112\n",
      "Epoch 4/6, Training Loss: 0.3062\n",
      "Epoch 4/6, Training Loss: 0.2264\n",
      "Epoch 4/6, Training Loss: 0.2899\n",
      "Epoch 4/6, Training Loss: 0.1362\n",
      "Epoch 4/6, Training Loss: 0.2414\n",
      "Epoch 4/6, Training Loss: 0.2462\n",
      "Epoch 4/6, Training Loss: 0.1278\n",
      "Epoch 4/6, Training Loss: 0.1537\n",
      "Epoch 4/6, Training Loss: 0.1154\n",
      "Epoch 4/6, Training Loss: 0.3145\n",
      "Epoch 4/6, Training Loss: 0.2859\n",
      "Epoch 4/6, Training Loss: 0.2555\n",
      "Epoch 4/6, Training Loss: 0.1062\n",
      "Epoch 4/6, Training Loss: 0.2601\n",
      "Epoch 4/6, Training Loss: 0.1647\n",
      "Epoch 4/6, Training Loss: 0.1460\n",
      "Epoch 4/6, Training Loss: 0.2036\n",
      "Epoch 4/6, Training Loss: 0.2578\n",
      "Epoch 4/6, Training Loss: 0.1165\n",
      "Epoch 4/6, Training Loss: 0.2589\n",
      "Epoch 4/6, Training Loss: 0.2667\n",
      "Epoch 4/6, Training Loss: 0.2599\n",
      "Epoch 4/6, Training Loss: 0.1241\n",
      "Epoch 4/6, Training Loss: 0.1498\n",
      "Epoch 4/6, Training Loss: 0.3997\n",
      "Epoch 4/6, Training Loss: 0.1732\n",
      "Epoch 4/6, Training Loss: 0.3296\n",
      "Epoch 4/6, Training Loss: 0.1089\n",
      "Epoch 4/6, Training Loss: 0.1912\n",
      "Epoch 4/6, Training Loss: 0.4067\n",
      "Epoch 4/6, Training Loss: 0.1194\n",
      "Epoch 4/6, Training Loss: 0.1572\n",
      "Epoch 4/6, Training Loss: 0.2103\n",
      "Epoch 4/6, Training Loss: 0.1457\n",
      "Epoch 4/6, Training Loss: 0.2499\n",
      "Epoch 4/6, Training Loss: 0.2479\n",
      "Epoch 4/6, Training Loss: 0.1043\n",
      "Epoch 4/6, Training Loss: 0.1943\n",
      "Epoch 4/6, Training Loss: 0.1294\n",
      "Epoch 4/6, Training Loss: 0.1270\n",
      "Epoch 4/6, Training Loss: 0.2185\n",
      "Epoch 4/6, Training Loss: 0.1547\n",
      "Epoch 4/6, Training Loss: 0.1639\n",
      "Epoch 4/6, Training Loss: 0.1339\n",
      "Epoch 4/6, Training Loss: 0.0639\n",
      "Epoch 4/6, Training Loss: 0.0745\n",
      "Epoch 4/6, Training Loss: 0.1370\n",
      "Epoch 4/6, Training Loss: 0.1275\n",
      "Epoch 4/6, Training Loss: 0.0548\n",
      "Epoch 4/6, Training Loss: 0.1038\n",
      "Epoch 4/6, Training Loss: 0.1406\n",
      "Epoch 4/6, Training Loss: 0.1289\n",
      "Epoch 4/6, Training Loss: 0.1663\n",
      "Epoch 4/6, Training Loss: 0.1339\n",
      "Epoch 4/6, Training Loss: 0.2510\n",
      "Epoch 4/6, Training Loss: 0.1346\n",
      "Epoch 4/6, Training Loss: 0.2173\n",
      "Epoch 4/6, Training Loss: 0.2459\n",
      "Epoch 4/6, Training Loss: 0.3258\n",
      "Epoch 4/6, Training Loss: 0.1694\n",
      "Epoch 4/6, Training Loss: 0.2736\n",
      "Epoch 4/6, Training Loss: 0.1941\n",
      "Epoch 4/6, Training Loss: 0.3431\n",
      "Epoch 4/6, Training Loss: 0.3150\n",
      "Epoch 4/6, Training Loss: 0.3077\n",
      "Epoch 4/6, Training Loss: 0.1479\n",
      "Epoch 4/6, Training Loss: 0.1061\n",
      "Epoch 4/6, Training Loss: 0.2512\n",
      "Epoch 4/6, Training Loss: 0.2017\n",
      "Epoch 4/6, Training Loss: 0.0670\n",
      "Epoch 4/6, Training Loss: 0.1180\n",
      "Epoch 4/6, Training Loss: 0.3064\n",
      "Epoch 4/6, Training Loss: 0.1595\n",
      "Epoch 4/6, Training Loss: 0.2753\n",
      "Epoch 4/6, Training Loss: 0.2726\n",
      "Epoch 4/6, Training Loss: 0.1915\n",
      "Epoch 4/6, Training Loss: 0.0941\n",
      "Epoch 4/6, Training Loss: 0.0845\n",
      "Epoch 4/6, Training Loss: 0.2350\n",
      "Epoch 4/6, Training Loss: 0.1528\n",
      "Epoch 4/6, Training Loss: 0.1801\n",
      "Epoch 4/6, Training Loss: 0.0473\n",
      "Epoch 4/6, Training Loss: 0.2542\n",
      "Epoch 4/6, Training Loss: 0.2276\n",
      "Epoch 4/6, Training Loss: 0.1969\n",
      "Epoch 4/6, Training Loss: 0.1257\n",
      "Epoch 4/6, Training Loss: 0.1463\n",
      "Epoch 4/6, Training Loss: 0.1405\n",
      "Epoch 4/6, Training Loss: 0.2707\n",
      "Epoch 4/6, Training Loss: 0.2636\n",
      "Epoch 4/6, Training Loss: 0.2313\n",
      "Epoch 4/6, Training Loss: 0.2136\n",
      "Epoch 4/6, Training Loss: 0.0993\n",
      "Epoch 4/6, Training Loss: 0.1341\n",
      "Epoch 4/6, Training Loss: 0.1893\n",
      "Epoch 4/6, Training Loss: 0.3020\n",
      "Epoch 4/6, Training Loss: 0.1853\n",
      "Epoch 4/6, Training Loss: 0.2179\n",
      "Epoch 4/6, Training Loss: 0.1427\n",
      "Epoch 4/6, Training Loss: 0.1443\n",
      "Epoch 4/6, Training Loss: 0.2435\n",
      "Epoch 4/6, Training Loss: 0.2429\n",
      "Epoch 4/6, Training Loss: 0.3151\n",
      "Epoch 4/6, Training Loss: 0.2057\n",
      "Epoch 4/6, Training Loss: 0.2784\n",
      "Epoch 4/6, Training Loss: 0.2393\n",
      "Epoch 4/6, Training Loss: 0.3027\n",
      "Epoch 4/6, Training Loss: 0.3703\n",
      "Epoch 4/6, Training Loss: 0.0964\n",
      "Epoch 4/6, Training Loss: 0.1148\n",
      "Epoch 4/6, Training Loss: 0.1750\n",
      "Epoch 4/6, Training Loss: 0.2558\n",
      "Epoch 4/6, Training Loss: 0.2244\n",
      "Epoch 4/6, Training Loss: 0.2310\n",
      "Epoch 4/6, Training Loss: 0.3515\n",
      "Epoch 4/6, Training Loss: 0.2572\n",
      "Epoch 4/6, Training Loss: 0.2362\n",
      "Epoch 4/6, Training Loss: 0.1334\n",
      "Epoch 4/6, Training Loss: 0.2552\n",
      "Epoch 4/6, Training Loss: 0.1690\n",
      "Epoch 4/6, Training Loss: 0.1968\n",
      "Epoch 4/6, Training Loss: 0.2449\n",
      "Epoch 4/6, Training Loss: 0.3104\n",
      "Epoch 4/6, Training Loss: 0.1868\n",
      "Epoch 4/6, Training Loss: 0.3116\n",
      "Epoch 4/6, Training Loss: 0.1161\n",
      "Epoch 4/6, Training Loss: 0.2582\n",
      "Epoch 4/6, Training Loss: 0.3427\n",
      "Epoch 4/6, Training Loss: 0.2117\n",
      "Epoch 4/6, Training Loss: 0.1410\n",
      "Epoch 4/6, Training Loss: 0.2186\n",
      "Epoch 4/6, Training Loss: 0.1402\n",
      "Epoch 4/6, Training Loss: 0.0497\n",
      "Epoch 4/6, Training Loss: 0.2938\n",
      "Epoch 4/6, Training Loss: 0.2341\n",
      "Epoch 4/6, Training Loss: 0.2308\n",
      "Epoch 4/6, Training Loss: 0.2308\n",
      "Epoch 4/6, Training Loss: 0.1875\n",
      "Epoch 4/6, Training Loss: 0.3456\n",
      "Epoch 4/6, Training Loss: 0.2005\n",
      "Epoch 4/6, Training Loss: 0.1365\n",
      "Epoch 4/6, Training Loss: 0.2148\n",
      "Epoch 4/6, Training Loss: 0.2089\n",
      "Epoch 4/6, Training Loss: 0.2034\n",
      "Epoch 4/6, Training Loss: 0.1692\n",
      "Epoch 4/6, Training Loss: 0.3411\n",
      "Epoch 4/6, Training Loss: 0.1929\n",
      "Epoch 4/6, Training Loss: 0.2890\n",
      "Epoch 4/6, Training Loss: 0.4118\n",
      "Epoch 4/6, Training Loss: 0.0902\n",
      "Epoch 4/6, Training Loss: 0.2487\n",
      "Epoch 4/6, Training Loss: 0.1701\n",
      "Epoch 4/6, Training Loss: 0.2407\n",
      "Epoch 4/6, Training Loss: 0.1836\n",
      "Epoch 4/6, Training Loss: 0.1986\n",
      "Epoch 4/6, Training Loss: 0.2266\n",
      "Epoch 4/6, Training Loss: 0.2175\n",
      "Epoch 4/6, Training Loss: 0.1865\n",
      "Epoch 4/6, Training Loss: 0.0819\n",
      "Epoch 4/6, Training Loss: 0.1870\n",
      "Epoch 4/6, Training Loss: 0.3139\n",
      "Epoch 4/6, Training Loss: 0.2559\n",
      "Epoch 4/6, Training Loss: 0.1034\n",
      "Epoch 4/6, Training Loss: 0.2245\n",
      "Epoch 4/6, Training Loss: 0.2776\n",
      "Epoch 4/6, Training Loss: 0.1023\n",
      "Epoch 4/6, Training Loss: 0.1799\n",
      "Epoch 4/6, Training Loss: 0.1520\n",
      "Epoch 4/6, Training Loss: 0.0748\n",
      "Epoch 4/6, Training Loss: 0.1785\n",
      "Epoch 4/6, Training Loss: 0.2728\n",
      "Epoch 4/6, Training Loss: 0.2244\n",
      "Epoch 4/6, Training Loss: 0.3449\n",
      "Epoch 4/6, Training Loss: 0.2272\n",
      "Epoch 4/6, Training Loss: 0.1211\n",
      "Epoch 4/6, Training Loss: 0.2058\n",
      "Epoch 4/6, Training Loss: 0.3400\n",
      "Epoch 4/6, Training Loss: 0.1927\n",
      "Epoch 4/6, Training Loss: 0.2766\n",
      "Epoch 4/6, Training Loss: 0.2390\n",
      "Epoch 4/6, Training Loss: 0.3340\n",
      "Epoch 4/6, Training Loss: 0.2431\n",
      "Epoch 4/6, Training Loss: 0.2302\n",
      "Epoch 4/6, Training Loss: 0.2464\n",
      "Epoch 4/6, Training Loss: 0.3591\n",
      "Epoch 4/6, Training Loss: 0.1761\n",
      "Epoch 4/6, Training Loss: 0.2063\n",
      "Epoch 4/6, Training Loss: 0.1763\n",
      "Epoch 4/6, Training Loss: 0.3434\n",
      "Epoch 4/6, Training Loss: 0.2335\n",
      "Epoch 4/6, Training Loss: 0.2040\n",
      "Epoch 4/6, Training Loss: 0.2011\n",
      "Epoch 4/6, Training Loss: 0.2894\n",
      "Epoch 4/6, Training Loss: 0.1385\n",
      "Epoch 4/6, Training Loss: 0.1949\n",
      "Epoch 4/6, Training Loss: 0.0877\n",
      "Epoch 4/6, Training Loss: 0.3098\n",
      "Epoch 4/6, Training Loss: 0.4197\n",
      "Epoch 4/6, Training Loss: 0.0968\n",
      "Epoch 4/6, Training Loss: 0.2056\n",
      "Epoch 4/6, Training Loss: 0.3318\n",
      "Epoch 4/6, Training Loss: 0.2304\n",
      "Epoch 4/6, Training Loss: 0.0890\n",
      "Epoch 4/6, Training Loss: 0.3669\n",
      "Epoch 4/6, Training Loss: 0.2877\n",
      "Epoch 4/6, Training Loss: 0.2025\n",
      "Epoch 4/6, Training Loss: 0.2962\n",
      "Epoch 4/6, Training Loss: 0.2536\n",
      "Epoch 4/6, Training Loss: 0.1973\n",
      "Epoch 4/6, Training Loss: 0.2781\n",
      "Epoch 4/6, Training Loss: 0.1720\n",
      "Epoch 4/6, Training Loss: 0.1787\n",
      "Epoch 4/6, Training Loss: 0.2312\n",
      "Epoch 4/6, Training Loss: 0.1680\n",
      "Epoch 4/6, Training Loss: 0.2996\n",
      "Epoch 4/6, Training Loss: 0.3822\n",
      "Epoch 4/6, Training Loss: 0.1236\n",
      "Epoch 4/6, Training Loss: 0.2642\n",
      "Epoch 4/6, Training Loss: 0.0758\n",
      "Epoch 4/6, Training Loss: 0.3161\n",
      "Epoch 4/6, Training Loss: 0.2311\n",
      "Epoch 4/6, Training Loss: 0.1617\n",
      "Epoch 4/6, Training Loss: 0.1755\n",
      "Epoch 4/6, Training Loss: 0.2351\n",
      "Epoch 4/6, Training Loss: 0.2830\n",
      "Epoch 4/6, Training Loss: 0.2535\n",
      "Epoch 4/6, Training Loss: 0.2954\n",
      "Epoch 4/6, Training Loss: 0.2909\n",
      "Epoch 4/6, Training Loss: 0.3653\n",
      "Epoch 4/6, Training Loss: 0.2583\n",
      "Epoch 4/6, Training Loss: 0.1851\n",
      "Epoch 4/6, Training Loss: 0.3853\n",
      "Epoch 4/6, Training Loss: 0.3538\n",
      "Epoch 4/6, Training Loss: 0.3497\n",
      "Epoch 4/6, Training Loss: 0.1832\n",
      "Epoch 4/6, Training Loss: 0.3018\n",
      "Epoch 4/6, Training Loss: 0.1640\n",
      "Epoch 4/6, Training Loss: 0.3177\n",
      "Epoch 4/6, Training Loss: 0.1866\n",
      "Epoch 4/6, Training Loss: 0.1472\n",
      "Epoch 4/6, Training Loss: 0.2933\n",
      "Epoch 4/6, Training Loss: 0.6253\n",
      "Epoch 4/6, Training Loss: 0.2879\n",
      "Epoch 4/6, Training Loss: 0.3411\n",
      "Epoch 4/6, Training Loss: 0.2023\n",
      "Epoch 4/6, Training Loss: 0.1512\n",
      "Epoch 4/6, Training Loss: 0.2036\n",
      "Epoch 4/6, Training Loss: 0.2639\n",
      "Epoch 4/6, Training Loss: 0.1405\n",
      "Epoch 4/6, Training Loss: 0.2800\n",
      "Epoch 4/6, Training Loss: 0.3172\n",
      "Epoch 4/6, Training Loss: 0.1518\n",
      "Epoch 4/6, Training Loss: 0.1518\n",
      "Epoch 4/6, Training Loss: 0.2981\n",
      "Epoch 4/6, Training Loss: 0.2172\n",
      "Epoch 4/6, Training Loss: 0.3563\n",
      "Epoch 4/6, Training Loss: 0.3865\n",
      "Epoch 4/6, Training Loss: 0.1344\n",
      "Epoch 4/6, Training Loss: 0.2189\n",
      "Epoch 4/6, Training Loss: 0.4205\n",
      "Epoch 4/6, Training Loss: 0.2443\n",
      "Epoch 4/6, Training Loss: 0.2644\n",
      "Epoch 4/6, Training Loss: 0.3179\n",
      "Epoch 4/6, Training Loss: 0.2750\n",
      "Epoch 4/6, Training Loss: 0.3289\n",
      "Epoch 4/6, Training Loss: 0.2240\n",
      "Epoch 4/6, Training Loss: 0.1666\n",
      "Epoch 4/6, Training Loss: 0.2948\n",
      "Epoch 4/6, Training Loss: 0.3072\n",
      "Epoch 4/6, Training Loss: 0.2228\n",
      "Epoch 4/6, Training Loss: 0.1908\n",
      "Epoch 4/6, Training Loss: 0.3480\n",
      "Epoch 4/6, Training Loss: 0.3573\n",
      "Epoch 4/6, Training Loss: 0.2768\n",
      "Epoch 4/6, Training Loss: 0.0969\n",
      "Epoch 4/6, Training Loss: 0.1629\n",
      "Epoch 4/6, Training Loss: 0.3451\n",
      "Epoch 4/6, Training Loss: 0.1195\n",
      "Epoch 4/6, Training Loss: 0.1018\n",
      "Epoch 4/6, Training Loss: 0.3467\n",
      "Epoch 4/6, Training Loss: 0.3276\n",
      "Epoch 4/6, Training Loss: 0.2629\n",
      "Epoch 4/6, Training Loss: 0.2011\n",
      "Epoch 4/6, Training Loss: 0.1448\n",
      "Epoch 4/6, Training Loss: 0.2698\n",
      "Epoch 4/6, Training Loss: 0.1702\n",
      "Epoch 4/6, Training Loss: 0.1820\n",
      "Epoch 4/6, Training Loss: 0.1506\n",
      "Epoch 4/6, Training Loss: 0.1042\n",
      "Epoch 4/6, Training Loss: 0.1234\n",
      "Epoch 4/6, Training Loss: 0.3660\n",
      "Epoch 4/6, Training Loss: 0.2141\n",
      "Epoch 4/6, Training Loss: 0.1573\n",
      "Epoch 4/6, Training Loss: 0.2067\n",
      "Epoch 4/6, Training Loss: 0.1654\n",
      "Epoch 4/6, Training Loss: 0.2529\n",
      "Epoch 4/6, Training Loss: 0.3511\n",
      "Epoch 4/6, Training Loss: 0.4305\n",
      "Epoch 4/6, Training Loss: 0.1423\n",
      "Epoch 4/6, Training Loss: 0.3638\n",
      "Epoch 4/6, Training Loss: 0.3759\n",
      "Epoch 4/6, Training Loss: 0.1127\n",
      "Epoch 4/6, Training Loss: 0.1241\n",
      "Epoch 4/6, Training Loss: 0.1761\n",
      "Epoch 4/6, Training Loss: 0.2955\n",
      "Epoch 4/6, Training Loss: 0.2880\n",
      "Epoch 4/6, Training Loss: 0.2411\n",
      "Epoch 4/6, Training Loss: 0.1349\n",
      "Epoch 4/6, Training Loss: 0.2920\n",
      "Epoch 4/6, Training Loss: 0.2845\n",
      "Epoch 4/6, Training Loss: 0.2055\n",
      "Epoch 4/6, Training Loss: 0.2718\n",
      "Epoch 4/6, Training Loss: 0.3591\n",
      "Epoch 4/6, Training Loss: 0.5768\n",
      "Epoch 4/6, Training Loss: 0.3271\n",
      "Epoch 4/6, Training Loss: 0.1850\n",
      "Epoch 4/6, Training Loss: 0.1692\n",
      "Epoch 4/6, Training Loss: 0.2160\n",
      "Epoch 4/6, Training Loss: 0.2762\n",
      "Epoch 4/6, Training Loss: 0.2801\n",
      "Epoch 4/6, Training Loss: 0.1550\n",
      "Epoch 4/6, Training Loss: 0.1225\n",
      "Epoch 4/6, Training Loss: 0.2535\n",
      "Epoch 4/6, Training Loss: 0.1394\n",
      "Epoch 4/6, Training Loss: 0.4646\n",
      "Epoch 4/6, Training Loss: 0.1804\n",
      "Epoch 4/6, Training Loss: 0.2268\n",
      "Epoch 4/6, Training Loss: 0.3032\n",
      "Epoch 4/6, Training Loss: 0.2829\n",
      "Epoch 4/6, Training Loss: 0.1257\n",
      "Epoch 4/6, Training Loss: 0.2259\n",
      "Epoch 4/6, Training Loss: 0.3279\n",
      "Epoch 4/6, Training Loss: 0.1480\n",
      "Epoch 4/6, Training Loss: 0.2036\n",
      "Epoch 4/6, Training Loss: 0.4159\n",
      "Epoch 4/6, Training Loss: 0.1503\n",
      "Epoch 4/6, Training Loss: 0.1673\n",
      "Epoch 4/6, Training Loss: 0.1292\n",
      "Epoch 4/6, Training Loss: 0.2449\n",
      "Epoch 4/6, Training Loss: 0.2687\n",
      "Epoch 4/6, Training Loss: 0.2202\n",
      "Epoch 4/6, Training Loss: 0.3613\n",
      "Epoch 4/6, Training Loss: 0.4077\n",
      "Epoch 4/6, Training Loss: 0.4915\n",
      "Epoch 4/6, Training Loss: 0.3219\n",
      "Epoch 4/6, Training Loss: 0.3525\n",
      "Epoch 4/6, Training Loss: 0.1778\n",
      "Epoch 4/6, Training Loss: 0.3273\n",
      "Epoch 4/6, Training Loss: 0.2585\n",
      "Epoch 4/6, Training Loss: 0.2098\n",
      "Epoch 4/6, Training Loss: 0.2196\n",
      "Epoch 4/6, Training Loss: 0.2600\n",
      "Epoch 4/6, Training Loss: 0.1363\n",
      "Epoch 4/6, Training Loss: 0.2445\n",
      "Epoch 4/6, Training Loss: 0.3103\n",
      "Epoch 4/6, Training Loss: 0.1174\n",
      "Epoch 4/6, Training Loss: 0.1858\n",
      "Epoch 4/6, Training Loss: 0.2125\n",
      "Epoch 4/6, Training Loss: 0.2614\n",
      "Epoch 4/6, Training Loss: 0.2319\n",
      "Epoch 4/6, Training Loss: 0.1390\n",
      "Epoch 4/6, Training Loss: 0.4005\n",
      "Epoch 4/6, Training Loss: 0.3523\n",
      "Epoch 4/6, Training Loss: 0.3393\n",
      "Epoch 4/6, Training Loss: 0.1135\n",
      "Epoch 4/6, Training Loss: 0.2698\n",
      "Epoch 4/6, Training Loss: 0.1899\n",
      "Epoch 4/6, Training Loss: 0.2508\n",
      "Epoch 4/6, Training Loss: 0.1489\n",
      "Epoch 4/6, Training Loss: 0.2294\n",
      "Epoch 4/6, Training Loss: 0.1996\n",
      "Epoch 4/6, Training Loss: 0.3117\n",
      "Epoch 4/6, Training Loss: 0.2994\n",
      "Epoch 4/6, Training Loss: 0.2251\n",
      "Epoch 4/6, Training Loss: 0.4276\n",
      "Epoch 4/6, Training Loss: 0.3193\n",
      "Epoch 4/6, Training Loss: 0.2713\n",
      "Epoch 4/6, Training Loss: 0.3138\n",
      "Epoch 4/6, Training Loss: 0.1973\n",
      "Epoch 4/6, Training Loss: 0.1921\n",
      "Epoch 4/6, Training Loss: 0.2490\n",
      "Epoch 4/6, Training Loss: 0.2755\n",
      "Epoch 4/6, Training Loss: 0.1836\n",
      "Epoch 4/6, Training Loss: 0.1550\n",
      "Epoch 4/6, Training Loss: 0.1292\n",
      "Epoch 4/6, Training Loss: 0.1661\n",
      "Epoch 4/6, Training Loss: 0.1560\n",
      "Epoch 4/6, Training Loss: 0.2678\n",
      "Epoch 4/6, Training Loss: 0.2666\n",
      "Epoch 4/6, Training Loss: 0.3731\n",
      "Epoch 4/6, Training Loss: 0.2621\n",
      "Epoch 4/6, Training Loss: 0.1794\n",
      "Epoch 4/6, Training Loss: 0.1494\n",
      "Epoch 4/6, Training Loss: 0.1160\n",
      "Epoch 4/6, Training Loss: 0.1649\n",
      "Epoch 4/6, Training Loss: 0.2379\n",
      "Epoch 4/6, Training Loss: 0.2071\n",
      "Epoch 4/6, Training Loss: 0.4736\n",
      "Epoch 4/6, Training Loss: 0.2739\n",
      "Epoch 4/6, Training Loss: 0.1177\n",
      "Epoch 4/6, Training Loss: 0.1940\n",
      "Epoch 4/6, Training Loss: 0.1761\n",
      "Epoch 4/6, Training Loss: 0.4037\n",
      "Epoch 4/6, Training Loss: 0.2283\n",
      "Epoch 4/6, Training Loss: 0.2282\n",
      "Epoch 4/6, Training Loss: 0.3098\n",
      "Epoch 4/6, Training Loss: 0.3615\n",
      "Epoch 4/6, Training Loss: 0.1359\n",
      "Epoch 4/6, Training Loss: 0.1327\n",
      "Epoch 4/6, Training Loss: 0.2098\n",
      "Epoch 4/6, Training Loss: 0.1708\n",
      "Epoch 4/6, Training Loss: 0.2368\n",
      "Epoch 4/6, Training Loss: 0.1975\n",
      "Epoch 4/6, Training Loss: 0.3496\n",
      "Epoch 4/6, Training Loss: 0.3555\n",
      "Epoch 4/6, Training Loss: 0.1276\n",
      "Epoch 4/6, Training Loss: 0.2189\n",
      "Epoch 4/6, Training Loss: 0.2012\n",
      "Epoch 4/6, Training Loss: 0.1191\n",
      "Epoch 4/6, Training Loss: 0.0981\n",
      "Epoch 4/6, Training Loss: 0.1640\n",
      "Epoch 4/6, Training Loss: 0.1288\n",
      "Epoch 4/6, Training Loss: 0.2080\n",
      "Epoch 4/6, Training Loss: 0.2908\n",
      "Epoch 4/6, Training Loss: 0.3322\n",
      "Epoch 4/6, Training Loss: 0.2906\n",
      "Epoch 4/6, Training Loss: 0.1729\n",
      "Epoch 4/6, Training Loss: 0.1763\n",
      "Epoch 4/6, Training Loss: 0.2935\n",
      "Epoch 4/6, Training Loss: 0.1882\n",
      "Epoch 4/6, Training Loss: 0.1644\n",
      "Epoch 4/6, Training Loss: 0.1945\n",
      "Epoch 4/6, Training Loss: 0.3349\n",
      "Epoch 4/6, Training Loss: 0.1427\n",
      "Epoch 4/6, Training Loss: 0.2159\n",
      "Epoch 4/6, Training Loss: 0.3023\n",
      "Epoch 4/6, Training Loss: 0.3475\n",
      "Epoch 4/6, Training Loss: 0.3475, Cross-Validation Loss: 0.4618\n",
      "Epoch 5/6, Training Loss: 0.1206\n",
      "Epoch 5/6, Training Loss: 0.1333\n",
      "Epoch 5/6, Training Loss: 0.0821\n",
      "Epoch 5/6, Training Loss: 0.2184\n",
      "Epoch 5/6, Training Loss: 0.0585\n",
      "Epoch 5/6, Training Loss: 0.2202\n",
      "Epoch 5/6, Training Loss: 0.1787\n",
      "Epoch 5/6, Training Loss: 0.0620\n",
      "Epoch 5/6, Training Loss: 0.0882\n",
      "Epoch 5/6, Training Loss: 0.1787\n",
      "Epoch 5/6, Training Loss: 0.1289\n",
      "Epoch 5/6, Training Loss: 0.1709\n",
      "Epoch 5/6, Training Loss: 0.1634\n",
      "Epoch 5/6, Training Loss: 0.1282\n",
      "Epoch 5/6, Training Loss: 0.0295\n",
      "Epoch 5/6, Training Loss: 0.1186\n",
      "Epoch 5/6, Training Loss: 0.2305\n",
      "Epoch 5/6, Training Loss: 0.2122\n",
      "Epoch 5/6, Training Loss: 0.2031\n",
      "Epoch 5/6, Training Loss: 0.1848\n",
      "Epoch 5/6, Training Loss: 0.0893\n",
      "Epoch 5/6, Training Loss: 0.1143\n",
      "Epoch 5/6, Training Loss: 0.1186\n",
      "Epoch 5/6, Training Loss: 0.1440\n",
      "Epoch 5/6, Training Loss: 0.2123\n",
      "Epoch 5/6, Training Loss: 0.1026\n",
      "Epoch 5/6, Training Loss: 0.0773\n",
      "Epoch 5/6, Training Loss: 0.1307\n",
      "Epoch 5/6, Training Loss: 0.0635\n",
      "Epoch 5/6, Training Loss: 0.1391\n",
      "Epoch 5/6, Training Loss: 0.1123\n",
      "Epoch 5/6, Training Loss: 0.1035\n",
      "Epoch 5/6, Training Loss: 0.0759\n",
      "Epoch 5/6, Training Loss: 0.2280\n",
      "Epoch 5/6, Training Loss: 0.0379\n",
      "Epoch 5/6, Training Loss: 0.0553\n",
      "Epoch 5/6, Training Loss: 0.0706\n",
      "Epoch 5/6, Training Loss: 0.0658\n",
      "Epoch 5/6, Training Loss: 0.0724\n",
      "Epoch 5/6, Training Loss: 0.0620\n",
      "Epoch 5/6, Training Loss: 0.1388\n",
      "Epoch 5/6, Training Loss: 0.0498\n",
      "Epoch 5/6, Training Loss: 0.1291\n",
      "Epoch 5/6, Training Loss: 0.0964\n",
      "Epoch 5/6, Training Loss: 0.1229\n",
      "Epoch 5/6, Training Loss: 0.0510\n",
      "Epoch 5/6, Training Loss: 0.1065\n",
      "Epoch 5/6, Training Loss: 0.1105\n",
      "Epoch 5/6, Training Loss: 0.0589\n",
      "Epoch 5/6, Training Loss: 0.1183\n",
      "Epoch 5/6, Training Loss: 0.0620\n",
      "Epoch 5/6, Training Loss: 0.0553\n",
      "Epoch 5/6, Training Loss: 0.1100\n",
      "Epoch 5/6, Training Loss: 0.1430\n",
      "Epoch 5/6, Training Loss: 0.1747\n",
      "Epoch 5/6, Training Loss: 0.1701\n",
      "Epoch 5/6, Training Loss: 0.0202\n",
      "Epoch 5/6, Training Loss: 0.0689\n",
      "Epoch 5/6, Training Loss: 0.0853\n",
      "Epoch 5/6, Training Loss: 0.0738\n",
      "Epoch 5/6, Training Loss: 0.2264\n",
      "Epoch 5/6, Training Loss: 0.1441\n",
      "Epoch 5/6, Training Loss: 0.1692\n",
      "Epoch 5/6, Training Loss: 0.1477\n",
      "Epoch 5/6, Training Loss: 0.1784\n",
      "Epoch 5/6, Training Loss: 0.1699\n",
      "Epoch 5/6, Training Loss: 0.0302\n",
      "Epoch 5/6, Training Loss: 0.0403\n",
      "Epoch 5/6, Training Loss: 0.1674\n",
      "Epoch 5/6, Training Loss: 0.1133\n",
      "Epoch 5/6, Training Loss: 0.0793\n",
      "Epoch 5/6, Training Loss: 0.0923\n",
      "Epoch 5/6, Training Loss: 0.0248\n",
      "Epoch 5/6, Training Loss: 0.3301\n",
      "Epoch 5/6, Training Loss: 0.1116\n",
      "Epoch 5/6, Training Loss: 0.1017\n",
      "Epoch 5/6, Training Loss: 0.0848\n",
      "Epoch 5/6, Training Loss: 0.0157\n",
      "Epoch 5/6, Training Loss: 0.1332\n",
      "Epoch 5/6, Training Loss: 0.0513\n",
      "Epoch 5/6, Training Loss: 0.1645\n",
      "Epoch 5/6, Training Loss: 0.1146\n",
      "Epoch 5/6, Training Loss: 0.0609\n",
      "Epoch 5/6, Training Loss: 0.1336\n",
      "Epoch 5/6, Training Loss: 0.1685\n",
      "Epoch 5/6, Training Loss: 0.0205\n",
      "Epoch 5/6, Training Loss: 0.0482\n",
      "Epoch 5/6, Training Loss: 0.0729\n",
      "Epoch 5/6, Training Loss: 0.0589\n",
      "Epoch 5/6, Training Loss: 0.1041\n",
      "Epoch 5/6, Training Loss: 0.0830\n",
      "Epoch 5/6, Training Loss: 0.1312\n",
      "Epoch 5/6, Training Loss: 0.0892\n",
      "Epoch 5/6, Training Loss: 0.0931\n",
      "Epoch 5/6, Training Loss: 0.0538\n",
      "Epoch 5/6, Training Loss: 0.1328\n",
      "Epoch 5/6, Training Loss: 0.1681\n",
      "Epoch 5/6, Training Loss: 0.0735\n",
      "Epoch 5/6, Training Loss: 0.0766\n",
      "Epoch 5/6, Training Loss: 0.0945\n",
      "Epoch 5/6, Training Loss: 0.1205\n",
      "Epoch 5/6, Training Loss: 0.1362\n",
      "Epoch 5/6, Training Loss: 0.1126\n",
      "Epoch 5/6, Training Loss: 0.0655\n",
      "Epoch 5/6, Training Loss: 0.1196\n",
      "Epoch 5/6, Training Loss: 0.1653\n",
      "Epoch 5/6, Training Loss: 0.1098\n",
      "Epoch 5/6, Training Loss: 0.1016\n",
      "Epoch 5/6, Training Loss: 0.1151\n",
      "Epoch 5/6, Training Loss: 0.1486\n",
      "Epoch 5/6, Training Loss: 0.0641\n",
      "Epoch 5/6, Training Loss: 0.0419\n",
      "Epoch 5/6, Training Loss: 0.0268\n",
      "Epoch 5/6, Training Loss: 0.0186\n",
      "Epoch 5/6, Training Loss: 0.0855\n",
      "Epoch 5/6, Training Loss: 0.1966\n",
      "Epoch 5/6, Training Loss: 0.0901\n",
      "Epoch 5/6, Training Loss: 0.0795\n",
      "Epoch 5/6, Training Loss: 0.0803\n",
      "Epoch 5/6, Training Loss: 0.0979\n",
      "Epoch 5/6, Training Loss: 0.0288\n",
      "Epoch 5/6, Training Loss: 0.0966\n",
      "Epoch 5/6, Training Loss: 0.0502\n",
      "Epoch 5/6, Training Loss: 0.1024\n",
      "Epoch 5/6, Training Loss: 0.0996\n",
      "Epoch 5/6, Training Loss: 0.0693\n",
      "Epoch 5/6, Training Loss: 0.1752\n",
      "Epoch 5/6, Training Loss: 0.0717\n",
      "Epoch 5/6, Training Loss: 0.1268\n",
      "Epoch 5/6, Training Loss: 0.0911\n",
      "Epoch 5/6, Training Loss: 0.1536\n",
      "Epoch 5/6, Training Loss: 0.0953\n",
      "Epoch 5/6, Training Loss: 0.1891\n",
      "Epoch 5/6, Training Loss: 0.1104\n",
      "Epoch 5/6, Training Loss: 0.0618\n",
      "Epoch 5/6, Training Loss: 0.2619\n",
      "Epoch 5/6, Training Loss: 0.1440\n",
      "Epoch 5/6, Training Loss: 0.1773\n",
      "Epoch 5/6, Training Loss: 0.1213\n",
      "Epoch 5/6, Training Loss: 0.0640\n",
      "Epoch 5/6, Training Loss: 0.1610\n",
      "Epoch 5/6, Training Loss: 0.1236\n",
      "Epoch 5/6, Training Loss: 0.0815\n",
      "Epoch 5/6, Training Loss: 0.1025\n",
      "Epoch 5/6, Training Loss: 0.1640\n",
      "Epoch 5/6, Training Loss: 0.0976\n",
      "Epoch 5/6, Training Loss: 0.2149\n",
      "Epoch 5/6, Training Loss: 0.1441\n",
      "Epoch 5/6, Training Loss: 0.1645\n",
      "Epoch 5/6, Training Loss: 0.1343\n",
      "Epoch 5/6, Training Loss: 0.2177\n",
      "Epoch 5/6, Training Loss: 0.1004\n",
      "Epoch 5/6, Training Loss: 0.0618\n",
      "Epoch 5/6, Training Loss: 0.1601\n",
      "Epoch 5/6, Training Loss: 0.0649\n",
      "Epoch 5/6, Training Loss: 0.0441\n",
      "Epoch 5/6, Training Loss: 0.0744\n",
      "Epoch 5/6, Training Loss: 0.1379\n",
      "Epoch 5/6, Training Loss: 0.1039\n",
      "Epoch 5/6, Training Loss: 0.2412\n",
      "Epoch 5/6, Training Loss: 0.2008\n",
      "Epoch 5/6, Training Loss: 0.1009\n",
      "Epoch 5/6, Training Loss: 0.0729\n",
      "Epoch 5/6, Training Loss: 0.1069\n",
      "Epoch 5/6, Training Loss: 0.1000\n",
      "Epoch 5/6, Training Loss: 0.1267\n",
      "Epoch 5/6, Training Loss: 0.1164\n",
      "Epoch 5/6, Training Loss: 0.2765\n",
      "Epoch 5/6, Training Loss: 0.1024\n",
      "Epoch 5/6, Training Loss: 0.0458\n",
      "Epoch 5/6, Training Loss: 0.1130\n",
      "Epoch 5/6, Training Loss: 0.0738\n",
      "Epoch 5/6, Training Loss: 0.2236\n",
      "Epoch 5/6, Training Loss: 0.1243\n",
      "Epoch 5/6, Training Loss: 0.1381\n",
      "Epoch 5/6, Training Loss: 0.2174\n",
      "Epoch 5/6, Training Loss: 0.0578\n",
      "Epoch 5/6, Training Loss: 0.1211\n",
      "Epoch 5/6, Training Loss: 0.1929\n",
      "Epoch 5/6, Training Loss: 0.0771\n",
      "Epoch 5/6, Training Loss: 0.1982\n",
      "Epoch 5/6, Training Loss: 0.1017\n",
      "Epoch 5/6, Training Loss: 0.1979\n",
      "Epoch 5/6, Training Loss: 0.1240\n",
      "Epoch 5/6, Training Loss: 0.1415\n",
      "Epoch 5/6, Training Loss: 0.0895\n",
      "Epoch 5/6, Training Loss: 0.0480\n",
      "Epoch 5/6, Training Loss: 0.0784\n",
      "Epoch 5/6, Training Loss: 0.1736\n",
      "Epoch 5/6, Training Loss: 0.3367\n",
      "Epoch 5/6, Training Loss: 0.1579\n",
      "Epoch 5/6, Training Loss: 0.1447\n",
      "Epoch 5/6, Training Loss: 0.2471\n",
      "Epoch 5/6, Training Loss: 0.0849\n",
      "Epoch 5/6, Training Loss: 0.1423\n",
      "Epoch 5/6, Training Loss: 0.1381\n",
      "Epoch 5/6, Training Loss: 0.2257\n",
      "Epoch 5/6, Training Loss: 0.2254\n",
      "Epoch 5/6, Training Loss: 0.1113\n",
      "Epoch 5/6, Training Loss: 0.2207\n",
      "Epoch 5/6, Training Loss: 0.1220\n",
      "Epoch 5/6, Training Loss: 0.2176\n",
      "Epoch 5/6, Training Loss: 0.2123\n",
      "Epoch 5/6, Training Loss: 0.1372\n",
      "Epoch 5/6, Training Loss: 0.2667\n",
      "Epoch 5/6, Training Loss: 0.0892\n",
      "Epoch 5/6, Training Loss: 0.3037\n",
      "Epoch 5/6, Training Loss: 0.1556\n",
      "Epoch 5/6, Training Loss: 0.0993\n",
      "Epoch 5/6, Training Loss: 0.2114\n",
      "Epoch 5/6, Training Loss: 0.1704\n",
      "Epoch 5/6, Training Loss: 0.1234\n",
      "Epoch 5/6, Training Loss: 0.1961\n",
      "Epoch 5/6, Training Loss: 0.0287\n",
      "Epoch 5/6, Training Loss: 0.2242\n",
      "Epoch 5/6, Training Loss: 0.2436\n",
      "Epoch 5/6, Training Loss: 0.1842\n",
      "Epoch 5/6, Training Loss: 0.1808\n",
      "Epoch 5/6, Training Loss: 0.2058\n",
      "Epoch 5/6, Training Loss: 0.1431\n",
      "Epoch 5/6, Training Loss: 0.2016\n",
      "Epoch 5/6, Training Loss: 0.1078\n",
      "Epoch 5/6, Training Loss: 0.1283\n",
      "Epoch 5/6, Training Loss: 0.2492\n",
      "Epoch 5/6, Training Loss: 0.1397\n",
      "Epoch 5/6, Training Loss: 0.1736\n",
      "Epoch 5/6, Training Loss: 0.1258\n",
      "Epoch 5/6, Training Loss: 0.2257\n",
      "Epoch 5/6, Training Loss: 0.0680\n",
      "Epoch 5/6, Training Loss: 0.2704\n",
      "Epoch 5/6, Training Loss: 0.1088\n",
      "Epoch 5/6, Training Loss: 0.1477\n",
      "Epoch 5/6, Training Loss: 0.1043\n",
      "Epoch 5/6, Training Loss: 0.1319\n",
      "Epoch 5/6, Training Loss: 0.1175\n",
      "Epoch 5/6, Training Loss: 0.2104\n",
      "Epoch 5/6, Training Loss: 0.0918\n",
      "Epoch 5/6, Training Loss: 0.1807\n",
      "Epoch 5/6, Training Loss: 0.1669\n",
      "Epoch 5/6, Training Loss: 0.0948\n",
      "Epoch 5/6, Training Loss: 0.2434\n",
      "Epoch 5/6, Training Loss: 0.1786\n",
      "Epoch 5/6, Training Loss: 0.1922\n",
      "Epoch 5/6, Training Loss: 0.1419\n",
      "Epoch 5/6, Training Loss: 0.1433\n",
      "Epoch 5/6, Training Loss: 0.0952\n",
      "Epoch 5/6, Training Loss: 0.1735\n",
      "Epoch 5/6, Training Loss: 0.0883\n",
      "Epoch 5/6, Training Loss: 0.1585\n",
      "Epoch 5/6, Training Loss: 0.2000\n",
      "Epoch 5/6, Training Loss: 0.2619\n",
      "Epoch 5/6, Training Loss: 0.2908\n",
      "Epoch 5/6, Training Loss: 0.1153\n",
      "Epoch 5/6, Training Loss: 0.1718\n",
      "Epoch 5/6, Training Loss: 0.1322\n",
      "Epoch 5/6, Training Loss: 0.1282\n",
      "Epoch 5/6, Training Loss: 0.1593\n",
      "Epoch 5/6, Training Loss: 0.1568\n",
      "Epoch 5/6, Training Loss: 0.0870\n",
      "Epoch 5/6, Training Loss: 0.1321\n",
      "Epoch 5/6, Training Loss: 0.1296\n",
      "Epoch 5/6, Training Loss: 0.1265\n",
      "Epoch 5/6, Training Loss: 0.1421\n",
      "Epoch 5/6, Training Loss: 0.1253\n",
      "Epoch 5/6, Training Loss: 0.1707\n",
      "Epoch 5/6, Training Loss: 0.4000\n",
      "Epoch 5/6, Training Loss: 0.1841\n",
      "Epoch 5/6, Training Loss: 0.1472\n",
      "Epoch 5/6, Training Loss: 0.1245\n",
      "Epoch 5/6, Training Loss: 0.1231\n",
      "Epoch 5/6, Training Loss: 0.2423\n",
      "Epoch 5/6, Training Loss: 0.1570\n",
      "Epoch 5/6, Training Loss: 0.1630\n",
      "Epoch 5/6, Training Loss: 0.2149\n",
      "Epoch 5/6, Training Loss: 0.3079\n",
      "Epoch 5/6, Training Loss: 0.1220\n",
      "Epoch 5/6, Training Loss: 0.0485\n",
      "Epoch 5/6, Training Loss: 0.1237\n",
      "Epoch 5/6, Training Loss: 0.1168\n",
      "Epoch 5/6, Training Loss: 0.1281\n",
      "Epoch 5/6, Training Loss: 0.1669\n",
      "Epoch 5/6, Training Loss: 0.1499\n",
      "Epoch 5/6, Training Loss: 0.2235\n",
      "Epoch 5/6, Training Loss: 0.1015\n",
      "Epoch 5/6, Training Loss: 0.3181\n",
      "Epoch 5/6, Training Loss: 0.3925\n",
      "Epoch 5/6, Training Loss: 0.2882\n",
      "Epoch 5/6, Training Loss: 0.1420\n",
      "Epoch 5/6, Training Loss: 0.1311\n",
      "Epoch 5/6, Training Loss: 0.1563\n",
      "Epoch 5/6, Training Loss: 0.2798\n",
      "Epoch 5/6, Training Loss: 0.1585\n",
      "Epoch 5/6, Training Loss: 0.0947\n",
      "Epoch 5/6, Training Loss: 0.1883\n",
      "Epoch 5/6, Training Loss: 0.1791\n",
      "Epoch 5/6, Training Loss: 0.0649\n",
      "Epoch 5/6, Training Loss: 0.2056\n",
      "Epoch 5/6, Training Loss: 0.1375\n",
      "Epoch 5/6, Training Loss: 0.2010\n",
      "Epoch 5/6, Training Loss: 0.1056\n",
      "Epoch 5/6, Training Loss: 0.1057\n",
      "Epoch 5/6, Training Loss: 0.0925\n",
      "Epoch 5/6, Training Loss: 0.2224\n",
      "Epoch 5/6, Training Loss: 0.1160\n",
      "Epoch 5/6, Training Loss: 0.1531\n",
      "Epoch 5/6, Training Loss: 0.0969\n",
      "Epoch 5/6, Training Loss: 0.1233\n",
      "Epoch 5/6, Training Loss: 0.1772\n",
      "Epoch 5/6, Training Loss: 0.3110\n",
      "Epoch 5/6, Training Loss: 0.2672\n",
      "Epoch 5/6, Training Loss: 0.1774\n",
      "Epoch 5/6, Training Loss: 0.0892\n",
      "Epoch 5/6, Training Loss: 0.1883\n",
      "Epoch 5/6, Training Loss: 0.2076\n",
      "Epoch 5/6, Training Loss: 0.0765\n",
      "Epoch 5/6, Training Loss: 0.3025\n",
      "Epoch 5/6, Training Loss: 0.1093\n",
      "Epoch 5/6, Training Loss: 0.2396\n",
      "Epoch 5/6, Training Loss: 0.2143\n",
      "Epoch 5/6, Training Loss: 0.0737\n",
      "Epoch 5/6, Training Loss: 0.2414\n",
      "Epoch 5/6, Training Loss: 0.1109\n",
      "Epoch 5/6, Training Loss: 0.2867\n",
      "Epoch 5/6, Training Loss: 0.0727\n",
      "Epoch 5/6, Training Loss: 0.1328\n",
      "Epoch 5/6, Training Loss: 0.2601\n",
      "Epoch 5/6, Training Loss: 0.1414\n",
      "Epoch 5/6, Training Loss: 0.2210\n",
      "Epoch 5/6, Training Loss: 0.2114\n",
      "Epoch 5/6, Training Loss: 0.1242\n",
      "Epoch 5/6, Training Loss: 0.1719\n",
      "Epoch 5/6, Training Loss: 0.1848\n",
      "Epoch 5/6, Training Loss: 0.1804\n",
      "Epoch 5/6, Training Loss: 0.1331\n",
      "Epoch 5/6, Training Loss: 0.0842\n",
      "Epoch 5/6, Training Loss: 0.1284\n",
      "Epoch 5/6, Training Loss: 0.0878\n",
      "Epoch 5/6, Training Loss: 0.0253\n",
      "Epoch 5/6, Training Loss: 0.1675\n",
      "Epoch 5/6, Training Loss: 0.2092\n",
      "Epoch 5/6, Training Loss: 0.2623\n",
      "Epoch 5/6, Training Loss: 0.0696\n",
      "Epoch 5/6, Training Loss: 0.1294\n",
      "Epoch 5/6, Training Loss: 0.1455\n",
      "Epoch 5/6, Training Loss: 0.0887\n",
      "Epoch 5/6, Training Loss: 0.1730\n",
      "Epoch 5/6, Training Loss: 0.1435\n",
      "Epoch 5/6, Training Loss: 0.1338\n",
      "Epoch 5/6, Training Loss: 0.2385\n",
      "Epoch 5/6, Training Loss: 0.1058\n",
      "Epoch 5/6, Training Loss: 0.1399\n",
      "Epoch 5/6, Training Loss: 0.1141\n",
      "Epoch 5/6, Training Loss: 0.2023\n",
      "Epoch 5/6, Training Loss: 0.1645\n",
      "Epoch 5/6, Training Loss: 0.2571\n",
      "Epoch 5/6, Training Loss: 0.1965\n",
      "Epoch 5/6, Training Loss: 0.1166\n",
      "Epoch 5/6, Training Loss: 0.1527\n",
      "Epoch 5/6, Training Loss: 0.1701\n",
      "Epoch 5/6, Training Loss: 0.1447\n",
      "Epoch 5/6, Training Loss: 0.2285\n",
      "Epoch 5/6, Training Loss: 0.1536\n",
      "Epoch 5/6, Training Loss: 0.1233\n",
      "Epoch 5/6, Training Loss: 0.1325\n",
      "Epoch 5/6, Training Loss: 0.2279\n",
      "Epoch 5/6, Training Loss: 0.1579\n",
      "Epoch 5/6, Training Loss: 0.1909\n",
      "Epoch 5/6, Training Loss: 0.2477\n",
      "Epoch 5/6, Training Loss: 0.1931\n",
      "Epoch 5/6, Training Loss: 0.1665\n",
      "Epoch 5/6, Training Loss: 0.2346\n",
      "Epoch 5/6, Training Loss: 0.1065\n",
      "Epoch 5/6, Training Loss: 0.1971\n",
      "Epoch 5/6, Training Loss: 0.2340\n",
      "Epoch 5/6, Training Loss: 0.1066\n",
      "Epoch 5/6, Training Loss: 0.1746\n",
      "Epoch 5/6, Training Loss: 0.0929\n",
      "Epoch 5/6, Training Loss: 0.1779\n",
      "Epoch 5/6, Training Loss: 0.1971\n",
      "Epoch 5/6, Training Loss: 0.1699\n",
      "Epoch 5/6, Training Loss: 0.1169\n",
      "Epoch 5/6, Training Loss: 0.1954\n",
      "Epoch 5/6, Training Loss: 0.2018\n",
      "Epoch 5/6, Training Loss: 0.2773\n",
      "Epoch 5/6, Training Loss: 0.0460\n",
      "Epoch 5/6, Training Loss: 0.0605\n",
      "Epoch 5/6, Training Loss: 0.2539\n",
      "Epoch 5/6, Training Loss: 0.2017\n",
      "Epoch 5/6, Training Loss: 0.1864\n",
      "Epoch 5/6, Training Loss: 0.2352\n",
      "Epoch 5/6, Training Loss: 0.1019\n",
      "Epoch 5/6, Training Loss: 0.1577\n",
      "Epoch 5/6, Training Loss: 0.1240\n",
      "Epoch 5/6, Training Loss: 0.2071\n",
      "Epoch 5/6, Training Loss: 0.1261\n",
      "Epoch 5/6, Training Loss: 0.1100\n",
      "Epoch 5/6, Training Loss: 0.2847\n",
      "Epoch 5/6, Training Loss: 0.2607\n",
      "Epoch 5/6, Training Loss: 0.3116\n",
      "Epoch 5/6, Training Loss: 0.1836\n",
      "Epoch 5/6, Training Loss: 0.1587\n",
      "Epoch 5/6, Training Loss: 0.0960\n",
      "Epoch 5/6, Training Loss: 0.2909\n",
      "Epoch 5/6, Training Loss: 0.2880\n",
      "Epoch 5/6, Training Loss: 0.0996\n",
      "Epoch 5/6, Training Loss: 0.1323\n",
      "Epoch 5/6, Training Loss: 0.1737\n",
      "Epoch 5/6, Training Loss: 0.1151\n",
      "Epoch 5/6, Training Loss: 0.1179\n",
      "Epoch 5/6, Training Loss: 0.1464\n",
      "Epoch 5/6, Training Loss: 0.2345\n",
      "Epoch 5/6, Training Loss: 0.1289\n",
      "Epoch 5/6, Training Loss: 0.2816\n",
      "Epoch 5/6, Training Loss: 0.3234\n",
      "Epoch 5/6, Training Loss: 0.0526\n",
      "Epoch 5/6, Training Loss: 0.3406\n",
      "Epoch 5/6, Training Loss: 0.2422\n",
      "Epoch 5/6, Training Loss: 0.1531\n",
      "Epoch 5/6, Training Loss: 0.1388\n",
      "Epoch 5/6, Training Loss: 0.2206\n",
      "Epoch 5/6, Training Loss: 0.1145\n",
      "Epoch 5/6, Training Loss: 0.1511\n",
      "Epoch 5/6, Training Loss: 0.1759\n",
      "Epoch 5/6, Training Loss: 0.1737\n",
      "Epoch 5/6, Training Loss: 0.1311\n",
      "Epoch 5/6, Training Loss: 0.0680\n",
      "Epoch 5/6, Training Loss: 0.0700\n",
      "Epoch 5/6, Training Loss: 0.0804\n",
      "Epoch 5/6, Training Loss: 0.1551\n",
      "Epoch 5/6, Training Loss: 0.3112\n",
      "Epoch 5/6, Training Loss: 0.1434\n",
      "Epoch 5/6, Training Loss: 0.1335\n",
      "Epoch 5/6, Training Loss: 0.2307\n",
      "Epoch 5/6, Training Loss: 0.1284\n",
      "Epoch 5/6, Training Loss: 0.1877\n",
      "Epoch 5/6, Training Loss: 0.1593\n",
      "Epoch 5/6, Training Loss: 0.0523\n",
      "Epoch 5/6, Training Loss: 0.1680\n",
      "Epoch 5/6, Training Loss: 0.1782\n",
      "Epoch 5/6, Training Loss: 0.1776\n",
      "Epoch 5/6, Training Loss: 0.0930\n",
      "Epoch 5/6, Training Loss: 0.0606\n",
      "Epoch 5/6, Training Loss: 0.2484\n",
      "Epoch 5/6, Training Loss: 0.1986\n",
      "Epoch 5/6, Training Loss: 0.2630\n",
      "Epoch 5/6, Training Loss: 0.1056\n",
      "Epoch 5/6, Training Loss: 0.1631\n",
      "Epoch 5/6, Training Loss: 0.2188\n",
      "Epoch 5/6, Training Loss: 0.0936\n",
      "Epoch 5/6, Training Loss: 0.1379\n",
      "Epoch 5/6, Training Loss: 0.0884\n",
      "Epoch 5/6, Training Loss: 0.1891\n",
      "Epoch 5/6, Training Loss: 0.1169\n",
      "Epoch 5/6, Training Loss: 0.1473\n",
      "Epoch 5/6, Training Loss: 0.1048\n",
      "Epoch 5/6, Training Loss: 0.2800\n",
      "Epoch 5/6, Training Loss: 0.1136\n",
      "Epoch 5/6, Training Loss: 0.1962\n",
      "Epoch 5/6, Training Loss: 0.2273\n",
      "Epoch 5/6, Training Loss: 0.1715\n",
      "Epoch 5/6, Training Loss: 0.2385\n",
      "Epoch 5/6, Training Loss: 0.1486\n",
      "Epoch 5/6, Training Loss: 0.1622\n",
      "Epoch 5/6, Training Loss: 0.2363\n",
      "Epoch 5/6, Training Loss: 0.0827\n",
      "Epoch 5/6, Training Loss: 0.2101\n",
      "Epoch 5/6, Training Loss: 0.2560\n",
      "Epoch 5/6, Training Loss: 0.1807\n",
      "Epoch 5/6, Training Loss: 0.1095\n",
      "Epoch 5/6, Training Loss: 0.1112\n",
      "Epoch 5/6, Training Loss: 0.1676\n",
      "Epoch 5/6, Training Loss: 0.0832\n",
      "Epoch 5/6, Training Loss: 0.0731\n",
      "Epoch 5/6, Training Loss: 0.2225\n",
      "Epoch 5/6, Training Loss: 0.2821\n",
      "Epoch 5/6, Training Loss: 0.0758\n",
      "Epoch 5/6, Training Loss: 0.3486\n",
      "Epoch 5/6, Training Loss: 0.0896\n",
      "Epoch 5/6, Training Loss: 0.1308\n",
      "Epoch 5/6, Training Loss: 0.0859\n",
      "Epoch 5/6, Training Loss: 0.2136\n",
      "Epoch 5/6, Training Loss: 0.2737\n",
      "Epoch 5/6, Training Loss: 0.2042\n",
      "Epoch 5/6, Training Loss: 0.0714\n",
      "Epoch 5/6, Training Loss: 0.1128\n",
      "Epoch 5/6, Training Loss: 0.1064\n",
      "Epoch 5/6, Training Loss: 0.0493\n",
      "Epoch 5/6, Training Loss: 0.1610\n",
      "Epoch 5/6, Training Loss: 0.2000\n",
      "Epoch 5/6, Training Loss: 0.1449\n",
      "Epoch 5/6, Training Loss: 0.0870\n",
      "Epoch 5/6, Training Loss: 0.1401\n",
      "Epoch 5/6, Training Loss: 0.1641\n",
      "Epoch 5/6, Training Loss: 0.1984\n",
      "Epoch 5/6, Training Loss: 0.3706\n",
      "Epoch 5/6, Training Loss: 0.0888\n",
      "Epoch 5/6, Training Loss: 0.2192\n",
      "Epoch 5/6, Training Loss: 0.2179\n",
      "Epoch 5/6, Training Loss: 0.1471\n",
      "Epoch 5/6, Training Loss: 0.1521\n",
      "Epoch 5/6, Training Loss: 0.0571\n",
      "Epoch 5/6, Training Loss: 0.1273\n",
      "Epoch 5/6, Training Loss: 0.2512\n",
      "Epoch 5/6, Training Loss: 0.1057\n",
      "Epoch 5/6, Training Loss: 0.4253\n",
      "Epoch 5/6, Training Loss: 0.3440\n",
      "Epoch 5/6, Training Loss: 0.2048\n",
      "Epoch 5/6, Training Loss: 0.1109\n",
      "Epoch 5/6, Training Loss: 0.1380\n",
      "Epoch 5/6, Training Loss: 0.1945\n",
      "Epoch 5/6, Training Loss: 0.1410\n",
      "Epoch 5/6, Training Loss: 0.0891\n",
      "Epoch 5/6, Training Loss: 0.1878\n",
      "Epoch 5/6, Training Loss: 0.1116\n",
      "Epoch 5/6, Training Loss: 0.2630\n",
      "Epoch 5/6, Training Loss: 0.1590\n",
      "Epoch 5/6, Training Loss: 0.2334\n",
      "Epoch 5/6, Training Loss: 0.1880\n",
      "Epoch 5/6, Training Loss: 0.2614\n",
      "Epoch 5/6, Training Loss: 0.2339\n",
      "Epoch 5/6, Training Loss: 0.0896\n",
      "Epoch 5/6, Training Loss: 0.2375\n",
      "Epoch 5/6, Training Loss: 0.3087\n",
      "Epoch 5/6, Training Loss: 0.2374\n",
      "Epoch 5/6, Training Loss: 0.1633\n",
      "Epoch 5/6, Training Loss: 0.2348\n",
      "Epoch 5/6, Training Loss: 0.2299\n",
      "Epoch 5/6, Training Loss: 0.2213\n",
      "Epoch 5/6, Training Loss: 0.2439\n",
      "Epoch 5/6, Training Loss: 0.1533\n",
      "Epoch 5/6, Training Loss: 0.2197\n",
      "Epoch 5/6, Training Loss: 0.1783\n",
      "Epoch 5/6, Training Loss: 0.2481\n",
      "Epoch 5/6, Training Loss: 0.1385\n",
      "Epoch 5/6, Training Loss: 0.3497\n",
      "Epoch 5/6, Training Loss: 0.2490\n",
      "Epoch 5/6, Training Loss: 0.1831\n",
      "Epoch 5/6, Training Loss: 0.2649\n",
      "Epoch 5/6, Training Loss: 0.1532\n",
      "Epoch 5/6, Training Loss: 0.1056\n",
      "Epoch 5/6, Training Loss: 0.0913\n",
      "Epoch 5/6, Training Loss: 0.1483\n",
      "Epoch 5/6, Training Loss: 0.1467\n",
      "Epoch 5/6, Training Loss: 0.2020\n",
      "Epoch 5/6, Training Loss: 0.2654\n",
      "Epoch 5/6, Training Loss: 0.2232\n",
      "Epoch 5/6, Training Loss: 0.2019\n",
      "Epoch 5/6, Training Loss: 0.2601\n",
      "Epoch 5/6, Training Loss: 0.1907\n",
      "Epoch 5/6, Training Loss: 0.1178\n",
      "Epoch 5/6, Training Loss: 0.2469\n",
      "Epoch 5/6, Training Loss: 0.1299\n",
      "Epoch 5/6, Training Loss: 0.1847\n",
      "Epoch 5/6, Training Loss: 0.1263\n",
      "Epoch 5/6, Training Loss: 0.1583\n",
      "Epoch 5/6, Training Loss: 0.4774\n",
      "Epoch 5/6, Training Loss: 0.4774, Cross-Validation Loss: 0.5832\n",
      "Epoch 6/6, Training Loss: 0.1274\n",
      "Epoch 6/6, Training Loss: 0.0384\n",
      "Epoch 6/6, Training Loss: 0.0697\n",
      "Epoch 6/6, Training Loss: 0.2270\n",
      "Epoch 6/6, Training Loss: 0.1990\n",
      "Epoch 6/6, Training Loss: 0.1749\n",
      "Epoch 6/6, Training Loss: 0.1215\n",
      "Epoch 6/6, Training Loss: 0.0777\n",
      "Epoch 6/6, Training Loss: 0.1223\n",
      "Epoch 6/6, Training Loss: 0.0284\n",
      "Epoch 6/6, Training Loss: 0.0443\n",
      "Epoch 6/6, Training Loss: 0.1977\n",
      "Epoch 6/6, Training Loss: 0.1022\n",
      "Epoch 6/6, Training Loss: 0.1246\n",
      "Epoch 6/6, Training Loss: 0.1522\n",
      "Epoch 6/6, Training Loss: 0.1172\n",
      "Epoch 6/6, Training Loss: 0.1205\n",
      "Epoch 6/6, Training Loss: 0.1294\n",
      "Epoch 6/6, Training Loss: 0.0911\n",
      "Epoch 6/6, Training Loss: 0.0734\n",
      "Epoch 6/6, Training Loss: 0.1741\n",
      "Epoch 6/6, Training Loss: 0.0960\n",
      "Epoch 6/6, Training Loss: 0.0745\n",
      "Epoch 6/6, Training Loss: 0.1504\n",
      "Epoch 6/6, Training Loss: 0.2136\n",
      "Epoch 6/6, Training Loss: 0.0275\n",
      "Epoch 6/6, Training Loss: 0.0799\n",
      "Epoch 6/6, Training Loss: 0.0694\n",
      "Epoch 6/6, Training Loss: 0.1261\n",
      "Epoch 6/6, Training Loss: 0.0778\n",
      "Epoch 6/6, Training Loss: 0.0482\n",
      "Epoch 6/6, Training Loss: 0.0802\n",
      "Epoch 6/6, Training Loss: 0.1142\n",
      "Epoch 6/6, Training Loss: 0.1009\n",
      "Epoch 6/6, Training Loss: 0.0468\n",
      "Epoch 6/6, Training Loss: 0.1118\n",
      "Epoch 6/6, Training Loss: 0.1634\n",
      "Epoch 6/6, Training Loss: 0.0577\n",
      "Epoch 6/6, Training Loss: 0.1321\n",
      "Epoch 6/6, Training Loss: 0.0663\n",
      "Epoch 6/6, Training Loss: 0.0820\n",
      "Epoch 6/6, Training Loss: 0.0499\n",
      "Epoch 6/6, Training Loss: 0.1796\n",
      "Epoch 6/6, Training Loss: 0.0761\n",
      "Epoch 6/6, Training Loss: 0.0466\n",
      "Epoch 6/6, Training Loss: 0.2088\n",
      "Epoch 6/6, Training Loss: 0.0323\n",
      "Epoch 6/6, Training Loss: 0.1257\n",
      "Epoch 6/6, Training Loss: 0.1176\n",
      "Epoch 6/6, Training Loss: 0.1560\n",
      "Epoch 6/6, Training Loss: 0.0114\n",
      "Epoch 6/6, Training Loss: 0.0785\n",
      "Epoch 6/6, Training Loss: 0.0399\n",
      "Epoch 6/6, Training Loss: 0.1079\n",
      "Epoch 6/6, Training Loss: 0.0928\n",
      "Epoch 6/6, Training Loss: 0.1683\n",
      "Epoch 6/6, Training Loss: 0.0284\n",
      "Epoch 6/6, Training Loss: 0.0592\n",
      "Epoch 6/6, Training Loss: 0.1913\n",
      "Epoch 6/6, Training Loss: 0.1402\n",
      "Epoch 6/6, Training Loss: 0.1263\n",
      "Epoch 6/6, Training Loss: 0.1249\n",
      "Epoch 6/6, Training Loss: 0.0836\n",
      "Epoch 6/6, Training Loss: 0.0711\n",
      "Epoch 6/6, Training Loss: 0.0516\n",
      "Epoch 6/6, Training Loss: 0.0172\n",
      "Epoch 6/6, Training Loss: 0.2450\n",
      "Epoch 6/6, Training Loss: 0.0279\n",
      "Epoch 6/6, Training Loss: 0.0972\n",
      "Epoch 6/6, Training Loss: 0.1500\n",
      "Epoch 6/6, Training Loss: 0.1116\n",
      "Epoch 6/6, Training Loss: 0.0988\n",
      "Epoch 6/6, Training Loss: 0.1206\n",
      "Epoch 6/6, Training Loss: 0.0460\n",
      "Epoch 6/6, Training Loss: 0.0201\n",
      "Epoch 6/6, Training Loss: 0.0822\n",
      "Epoch 6/6, Training Loss: 0.0856\n",
      "Epoch 6/6, Training Loss: 0.0629\n",
      "Epoch 6/6, Training Loss: 0.1067\n",
      "Epoch 6/6, Training Loss: 0.0758\n",
      "Epoch 6/6, Training Loss: 0.1370\n",
      "Epoch 6/6, Training Loss: 0.0831\n",
      "Epoch 6/6, Training Loss: 0.1642\n",
      "Epoch 6/6, Training Loss: 0.1128\n",
      "Epoch 6/6, Training Loss: 0.0510\n",
      "Epoch 6/6, Training Loss: 0.0630\n",
      "Epoch 6/6, Training Loss: 0.0749\n",
      "Epoch 6/6, Training Loss: 0.0923\n",
      "Epoch 6/6, Training Loss: 0.1903\n",
      "Epoch 6/6, Training Loss: 0.0483\n",
      "Epoch 6/6, Training Loss: 0.1029\n",
      "Epoch 6/6, Training Loss: 0.1875\n",
      "Epoch 6/6, Training Loss: 0.0848\n",
      "Epoch 6/6, Training Loss: 0.1087\n",
      "Epoch 6/6, Training Loss: 0.0871\n",
      "Epoch 6/6, Training Loss: 0.0818\n",
      "Epoch 6/6, Training Loss: 0.1701\n",
      "Epoch 6/6, Training Loss: 0.0760\n",
      "Epoch 6/6, Training Loss: 0.1235\n",
      "Epoch 6/6, Training Loss: 0.0937\n",
      "Epoch 6/6, Training Loss: 0.0722\n",
      "Epoch 6/6, Training Loss: 0.0585\n",
      "Epoch 6/6, Training Loss: 0.1236\n",
      "Epoch 6/6, Training Loss: 0.0328\n",
      "Epoch 6/6, Training Loss: 0.0714\n",
      "Epoch 6/6, Training Loss: 0.1028\n",
      "Epoch 6/6, Training Loss: 0.1287\n",
      "Epoch 6/6, Training Loss: 0.1237\n",
      "Epoch 6/6, Training Loss: 0.1058\n",
      "Epoch 6/6, Training Loss: 0.1039\n",
      "Epoch 6/6, Training Loss: 0.0851\n",
      "Epoch 6/6, Training Loss: 0.2319\n",
      "Epoch 6/6, Training Loss: 0.0409\n",
      "Epoch 6/6, Training Loss: 0.0333\n",
      "Epoch 6/6, Training Loss: 0.1289\n",
      "Epoch 6/6, Training Loss: 0.1248\n",
      "Epoch 6/6, Training Loss: 0.0306\n",
      "Epoch 6/6, Training Loss: 0.0788\n",
      "Epoch 6/6, Training Loss: 0.0858\n",
      "Epoch 6/6, Training Loss: 0.1076\n",
      "Epoch 6/6, Training Loss: 0.0542\n",
      "Epoch 6/6, Training Loss: 0.0807\n",
      "Epoch 6/6, Training Loss: 0.1579\n",
      "Epoch 6/6, Training Loss: 0.0686\n",
      "Epoch 6/6, Training Loss: 0.0628\n",
      "Epoch 6/6, Training Loss: 0.1086\n",
      "Epoch 6/6, Training Loss: 0.0471\n",
      "Epoch 6/6, Training Loss: 0.0776\n",
      "Epoch 6/6, Training Loss: 0.0389\n",
      "Epoch 6/6, Training Loss: 0.0283\n",
      "Epoch 6/6, Training Loss: 0.1250\n",
      "Epoch 6/6, Training Loss: 0.1635\n",
      "Epoch 6/6, Training Loss: 0.1147\n",
      "Epoch 6/6, Training Loss: 0.0890\n",
      "Epoch 6/6, Training Loss: 0.2237\n",
      "Epoch 6/6, Training Loss: 0.0651\n",
      "Epoch 6/6, Training Loss: 0.0258\n",
      "Epoch 6/6, Training Loss: 0.0628\n",
      "Epoch 6/6, Training Loss: 0.0794\n",
      "Epoch 6/6, Training Loss: 0.0676\n",
      "Epoch 6/6, Training Loss: 0.1618\n",
      "Epoch 6/6, Training Loss: 0.1528\n",
      "Epoch 6/6, Training Loss: 0.0813\n",
      "Epoch 6/6, Training Loss: 0.1481\n",
      "Epoch 6/6, Training Loss: 0.1247\n",
      "Epoch 6/6, Training Loss: 0.0945\n",
      "Epoch 6/6, Training Loss: 0.0580\n",
      "Epoch 6/6, Training Loss: 0.0858\n",
      "Epoch 6/6, Training Loss: 0.0811\n",
      "Epoch 6/6, Training Loss: 0.0437\n",
      "Epoch 6/6, Training Loss: 0.1400\n",
      "Epoch 6/6, Training Loss: 0.0975\n",
      "Epoch 6/6, Training Loss: 0.1496\n",
      "Epoch 6/6, Training Loss: 0.0877\n",
      "Epoch 6/6, Training Loss: 0.1082\n",
      "Epoch 6/6, Training Loss: 0.1173\n",
      "Epoch 6/6, Training Loss: 0.2069\n",
      "Epoch 6/6, Training Loss: 0.0261\n",
      "Epoch 6/6, Training Loss: 0.0598\n",
      "Epoch 6/6, Training Loss: 0.1077\n",
      "Epoch 6/6, Training Loss: 0.0169\n",
      "Epoch 6/6, Training Loss: 0.0562\n",
      "Epoch 6/6, Training Loss: 0.0628\n",
      "Epoch 6/6, Training Loss: 0.0183\n",
      "Epoch 6/6, Training Loss: 0.0901\n",
      "Epoch 6/6, Training Loss: 0.0858\n",
      "Epoch 6/6, Training Loss: 0.0249\n",
      "Epoch 6/6, Training Loss: 0.1049\n",
      "Epoch 6/6, Training Loss: 0.0589\n",
      "Epoch 6/6, Training Loss: 0.0313\n",
      "Epoch 6/6, Training Loss: 0.2293\n",
      "Epoch 6/6, Training Loss: 0.0980\n",
      "Epoch 6/6, Training Loss: 0.1465\n",
      "Epoch 6/6, Training Loss: 0.1303\n",
      "Epoch 6/6, Training Loss: 0.1389\n",
      "Epoch 6/6, Training Loss: 0.1920\n",
      "Epoch 6/6, Training Loss: 0.0851\n",
      "Epoch 6/6, Training Loss: 0.1207\n",
      "Epoch 6/6, Training Loss: 0.1667\n",
      "Epoch 6/6, Training Loss: 0.0462\n",
      "Epoch 6/6, Training Loss: 0.1631\n",
      "Epoch 6/6, Training Loss: 0.2306\n",
      "Epoch 6/6, Training Loss: 0.1765\n",
      "Epoch 6/6, Training Loss: 0.1130\n",
      "Epoch 6/6, Training Loss: 0.0684\n",
      "Epoch 6/6, Training Loss: 0.0658\n",
      "Epoch 6/6, Training Loss: 0.1560\n",
      "Epoch 6/6, Training Loss: 0.0933\n",
      "Epoch 6/6, Training Loss: 0.2205\n",
      "Epoch 6/6, Training Loss: 0.0298\n",
      "Epoch 6/6, Training Loss: 0.0863\n",
      "Epoch 6/6, Training Loss: 0.0462\n",
      "Epoch 6/6, Training Loss: 0.1001\n",
      "Epoch 6/6, Training Loss: 0.0888\n",
      "Epoch 6/6, Training Loss: 0.0304\n",
      "Epoch 6/6, Training Loss: 0.1314\n",
      "Epoch 6/6, Training Loss: 0.0855\n",
      "Epoch 6/6, Training Loss: 0.2236\n",
      "Epoch 6/6, Training Loss: 0.0913\n",
      "Epoch 6/6, Training Loss: 0.1243\n",
      "Epoch 6/6, Training Loss: 0.1540\n",
      "Epoch 6/6, Training Loss: 0.0828\n",
      "Epoch 6/6, Training Loss: 0.1767\n",
      "Epoch 6/6, Training Loss: 0.0508\n",
      "Epoch 6/6, Training Loss: 0.1240\n",
      "Epoch 6/6, Training Loss: 0.2894\n",
      "Epoch 6/6, Training Loss: 0.0953\n",
      "Epoch 6/6, Training Loss: 0.0394\n",
      "Epoch 6/6, Training Loss: 0.0655\n",
      "Epoch 6/6, Training Loss: 0.1435\n",
      "Epoch 6/6, Training Loss: 0.0454\n",
      "Epoch 6/6, Training Loss: 0.0284\n",
      "Epoch 6/6, Training Loss: 0.1033\n",
      "Epoch 6/6, Training Loss: 0.0946\n",
      "Epoch 6/6, Training Loss: 0.1295\n",
      "Epoch 6/6, Training Loss: 0.1607\n",
      "Epoch 6/6, Training Loss: 0.0630\n",
      "Epoch 6/6, Training Loss: 0.1009\n",
      "Epoch 6/6, Training Loss: 0.0690\n",
      "Epoch 6/6, Training Loss: 0.2056\n",
      "Epoch 6/6, Training Loss: 0.0631\n",
      "Epoch 6/6, Training Loss: 0.1198\n",
      "Epoch 6/6, Training Loss: 0.1067\n",
      "Epoch 6/6, Training Loss: 0.1299\n",
      "Epoch 6/6, Training Loss: 0.1888\n",
      "Epoch 6/6, Training Loss: 0.1711\n",
      "Epoch 6/6, Training Loss: 0.1608\n",
      "Epoch 6/6, Training Loss: 0.1718\n",
      "Epoch 6/6, Training Loss: 0.0149\n",
      "Epoch 6/6, Training Loss: 0.0648\n",
      "Epoch 6/6, Training Loss: 0.1360\n",
      "Epoch 6/6, Training Loss: 0.2767\n",
      "Epoch 6/6, Training Loss: 0.2876\n",
      "Epoch 6/6, Training Loss: 0.1345\n",
      "Epoch 6/6, Training Loss: 0.0597\n",
      "Epoch 6/6, Training Loss: 0.0787\n",
      "Epoch 6/6, Training Loss: 0.1293\n",
      "Epoch 6/6, Training Loss: 0.0587\n",
      "Epoch 6/6, Training Loss: 0.1087\n",
      "Epoch 6/6, Training Loss: 0.1824\n",
      "Epoch 6/6, Training Loss: 0.0844\n",
      "Epoch 6/6, Training Loss: 0.0728\n",
      "Epoch 6/6, Training Loss: 0.1387\n",
      "Epoch 6/6, Training Loss: 0.1364\n",
      "Epoch 6/6, Training Loss: 0.0628\n",
      "Epoch 6/6, Training Loss: 0.1609\n",
      "Epoch 6/6, Training Loss: 0.1068\n",
      "Epoch 6/6, Training Loss: 0.0348\n",
      "Epoch 6/6, Training Loss: 0.0765\n",
      "Epoch 6/6, Training Loss: 0.0637\n",
      "Epoch 6/6, Training Loss: 0.0849\n",
      "Epoch 6/6, Training Loss: 0.1223\n",
      "Epoch 6/6, Training Loss: 0.1607\n",
      "Epoch 6/6, Training Loss: 0.0311\n",
      "Epoch 6/6, Training Loss: 0.0427\n",
      "Epoch 6/6, Training Loss: 0.1267\n",
      "Epoch 6/6, Training Loss: 0.1655\n",
      "Epoch 6/6, Training Loss: 0.3178\n",
      "Epoch 6/6, Training Loss: 0.1003\n",
      "Epoch 6/6, Training Loss: 0.0569\n",
      "Epoch 6/6, Training Loss: 0.1095\n",
      "Epoch 6/6, Training Loss: 0.0428\n",
      "Epoch 6/6, Training Loss: 0.0611\n",
      "Epoch 6/6, Training Loss: 0.0754\n",
      "Epoch 6/6, Training Loss: 0.1655\n",
      "Epoch 6/6, Training Loss: 0.1530\n",
      "Epoch 6/6, Training Loss: 0.1035\n",
      "Epoch 6/6, Training Loss: 0.0442\n",
      "Epoch 6/6, Training Loss: 0.0944\n",
      "Epoch 6/6, Training Loss: 0.0850\n",
      "Epoch 6/6, Training Loss: 0.2142\n",
      "Epoch 6/6, Training Loss: 0.1047\n",
      "Epoch 6/6, Training Loss: 0.0586\n",
      "Epoch 6/6, Training Loss: 0.0901\n",
      "Epoch 6/6, Training Loss: 0.1540\n",
      "Epoch 6/6, Training Loss: 0.0748\n",
      "Epoch 6/6, Training Loss: 0.1535\n",
      "Epoch 6/6, Training Loss: 0.1457\n",
      "Epoch 6/6, Training Loss: 0.1677\n",
      "Epoch 6/6, Training Loss: 0.1138\n",
      "Epoch 6/6, Training Loss: 0.0344\n",
      "Epoch 6/6, Training Loss: 0.0412\n",
      "Epoch 6/6, Training Loss: 0.2470\n",
      "Epoch 6/6, Training Loss: 0.1047\n",
      "Epoch 6/6, Training Loss: 0.1584\n",
      "Epoch 6/6, Training Loss: 0.1169\n",
      "Epoch 6/6, Training Loss: 0.0908\n",
      "Epoch 6/6, Training Loss: 0.0280\n",
      "Epoch 6/6, Training Loss: 0.0660\n",
      "Epoch 6/6, Training Loss: 0.1285\n",
      "Epoch 6/6, Training Loss: 0.0795\n",
      "Epoch 6/6, Training Loss: 0.0703\n",
      "Epoch 6/6, Training Loss: 0.1046\n",
      "Epoch 6/6, Training Loss: 0.0432\n",
      "Epoch 6/6, Training Loss: 0.0694\n",
      "Epoch 6/6, Training Loss: 0.0959\n",
      "Epoch 6/6, Training Loss: 0.0787\n",
      "Epoch 6/6, Training Loss: 0.2757\n",
      "Epoch 6/6, Training Loss: 0.1926\n",
      "Epoch 6/6, Training Loss: 0.0778\n",
      "Epoch 6/6, Training Loss: 0.0787\n",
      "Epoch 6/6, Training Loss: 0.1858\n",
      "Epoch 6/6, Training Loss: 0.0488\n",
      "Epoch 6/6, Training Loss: 0.1168\n",
      "Epoch 6/6, Training Loss: 0.1220\n",
      "Epoch 6/6, Training Loss: 0.0643\n",
      "Epoch 6/6, Training Loss: 0.0815\n",
      "Epoch 6/6, Training Loss: 0.2009\n",
      "Epoch 6/6, Training Loss: 0.1029\n",
      "Epoch 6/6, Training Loss: 0.0432\n",
      "Epoch 6/6, Training Loss: 0.2276\n",
      "Epoch 6/6, Training Loss: 0.0256\n",
      "Epoch 6/6, Training Loss: 0.1571\n",
      "Epoch 6/6, Training Loss: 0.1268\n",
      "Epoch 6/6, Training Loss: 0.1036\n",
      "Epoch 6/6, Training Loss: 0.1047\n",
      "Epoch 6/6, Training Loss: 0.1067\n",
      "Epoch 6/6, Training Loss: 0.1600\n",
      "Epoch 6/6, Training Loss: 0.2082\n",
      "Epoch 6/6, Training Loss: 0.0943\n",
      "Epoch 6/6, Training Loss: 0.0610\n",
      "Epoch 6/6, Training Loss: 0.0365\n",
      "Epoch 6/6, Training Loss: 0.0829\n",
      "Epoch 6/6, Training Loss: 0.1103\n",
      "Epoch 6/6, Training Loss: 0.1204\n",
      "Epoch 6/6, Training Loss: 0.0867\n",
      "Epoch 6/6, Training Loss: 0.1539\n",
      "Epoch 6/6, Training Loss: 0.1089\n",
      "Epoch 6/6, Training Loss: 0.0967\n",
      "Epoch 6/6, Training Loss: 0.1521\n",
      "Epoch 6/6, Training Loss: 0.0797\n",
      "Epoch 6/6, Training Loss: 0.2257\n",
      "Epoch 6/6, Training Loss: 0.0780\n",
      "Epoch 6/6, Training Loss: 0.2316\n",
      "Epoch 6/6, Training Loss: 0.1499\n",
      "Epoch 6/6, Training Loss: 0.1529\n",
      "Epoch 6/6, Training Loss: 0.1573\n",
      "Epoch 6/6, Training Loss: 0.2706\n",
      "Epoch 6/6, Training Loss: 0.1411\n",
      "Epoch 6/6, Training Loss: 0.0974\n",
      "Epoch 6/6, Training Loss: 0.1884\n",
      "Epoch 6/6, Training Loss: 0.0395\n",
      "Epoch 6/6, Training Loss: 0.0554\n",
      "Epoch 6/6, Training Loss: 0.0704\n",
      "Epoch 6/6, Training Loss: 0.2932\n",
      "Epoch 6/6, Training Loss: 0.0557\n",
      "Epoch 6/6, Training Loss: 0.1054\n",
      "Epoch 6/6, Training Loss: 0.1871\n",
      "Epoch 6/6, Training Loss: 0.0615\n",
      "Epoch 6/6, Training Loss: 0.2839\n",
      "Epoch 6/6, Training Loss: 0.0792\n",
      "Epoch 6/6, Training Loss: 0.2178\n",
      "Epoch 6/6, Training Loss: 0.1517\n",
      "Epoch 6/6, Training Loss: 0.1038\n",
      "Epoch 6/6, Training Loss: 0.1579\n",
      "Epoch 6/6, Training Loss: 0.1990\n",
      "Epoch 6/6, Training Loss: 0.0922\n",
      "Epoch 6/6, Training Loss: 0.1201\n",
      "Epoch 6/6, Training Loss: 0.1613\n",
      "Epoch 6/6, Training Loss: 0.0988\n",
      "Epoch 6/6, Training Loss: 0.1220\n",
      "Epoch 6/6, Training Loss: 0.0893\n",
      "Epoch 6/6, Training Loss: 0.0397\n",
      "Epoch 6/6, Training Loss: 0.0605\n",
      "Epoch 6/6, Training Loss: 0.1917\n",
      "Epoch 6/6, Training Loss: 0.1177\n",
      "Epoch 6/6, Training Loss: 0.0518\n",
      "Epoch 6/6, Training Loss: 0.1068\n",
      "Epoch 6/6, Training Loss: 0.1265\n",
      "Epoch 6/6, Training Loss: 0.1081\n",
      "Epoch 6/6, Training Loss: 0.2745\n",
      "Epoch 6/6, Training Loss: 0.2509\n",
      "Epoch 6/6, Training Loss: 0.1376\n",
      "Epoch 6/6, Training Loss: 0.0780\n",
      "Epoch 6/6, Training Loss: 0.0860\n",
      "Epoch 6/6, Training Loss: 0.1185\n",
      "Epoch 6/6, Training Loss: 0.1190\n",
      "Epoch 6/6, Training Loss: 0.2054\n",
      "Epoch 6/6, Training Loss: 0.1008\n",
      "Epoch 6/6, Training Loss: 0.1235\n",
      "Epoch 6/6, Training Loss: 0.1879\n",
      "Epoch 6/6, Training Loss: 0.1037\n",
      "Epoch 6/6, Training Loss: 0.1204\n",
      "Epoch 6/6, Training Loss: 0.1788\n",
      "Epoch 6/6, Training Loss: 0.1390\n",
      "Epoch 6/6, Training Loss: 0.1882\n",
      "Epoch 6/6, Training Loss: 0.0807\n",
      "Epoch 6/6, Training Loss: 0.1799\n",
      "Epoch 6/6, Training Loss: 0.2247\n",
      "Epoch 6/6, Training Loss: 0.0857\n",
      "Epoch 6/6, Training Loss: 0.3466\n",
      "Epoch 6/6, Training Loss: 0.1434\n",
      "Epoch 6/6, Training Loss: 0.0668\n",
      "Epoch 6/6, Training Loss: 0.1173\n",
      "Epoch 6/6, Training Loss: 0.0988\n",
      "Epoch 6/6, Training Loss: 0.0369\n",
      "Epoch 6/6, Training Loss: 0.2174\n",
      "Epoch 6/6, Training Loss: 0.1131\n",
      "Epoch 6/6, Training Loss: 0.1066\n",
      "Epoch 6/6, Training Loss: 0.1811\n",
      "Epoch 6/6, Training Loss: 0.1141\n",
      "Epoch 6/6, Training Loss: 0.1677\n",
      "Epoch 6/6, Training Loss: 0.1160\n",
      "Epoch 6/6, Training Loss: 0.0467\n",
      "Epoch 6/6, Training Loss: 0.2097\n",
      "Epoch 6/6, Training Loss: 0.0586\n",
      "Epoch 6/6, Training Loss: 0.0753\n",
      "Epoch 6/6, Training Loss: 0.1499\n",
      "Epoch 6/6, Training Loss: 0.0580\n",
      "Epoch 6/6, Training Loss: 0.1502\n",
      "Epoch 6/6, Training Loss: 0.1484\n",
      "Epoch 6/6, Training Loss: 0.0973\n",
      "Epoch 6/6, Training Loss: 0.1457\n",
      "Epoch 6/6, Training Loss: 0.1406\n",
      "Epoch 6/6, Training Loss: 0.0563\n",
      "Epoch 6/6, Training Loss: 0.0690\n",
      "Epoch 6/6, Training Loss: 0.1227\n",
      "Epoch 6/6, Training Loss: 0.1015\n",
      "Epoch 6/6, Training Loss: 0.0287\n",
      "Epoch 6/6, Training Loss: 0.1042\n",
      "Epoch 6/6, Training Loss: 0.0711\n",
      "Epoch 6/6, Training Loss: 0.0285\n",
      "Epoch 6/6, Training Loss: 0.0744\n",
      "Epoch 6/6, Training Loss: 0.0454\n",
      "Epoch 6/6, Training Loss: 0.1508\n",
      "Epoch 6/6, Training Loss: 0.0834\n",
      "Epoch 6/6, Training Loss: 0.0592\n",
      "Epoch 6/6, Training Loss: 0.0600\n",
      "Epoch 6/6, Training Loss: 0.0863\n",
      "Epoch 6/6, Training Loss: 0.0243\n",
      "Epoch 6/6, Training Loss: 0.1166\n",
      "Epoch 6/6, Training Loss: 0.0331\n",
      "Epoch 6/6, Training Loss: 0.0382\n",
      "Epoch 6/6, Training Loss: 0.2733\n",
      "Epoch 6/6, Training Loss: 0.2000\n",
      "Epoch 6/6, Training Loss: 0.1747\n",
      "Epoch 6/6, Training Loss: 0.1736\n",
      "Epoch 6/6, Training Loss: 0.0439\n",
      "Epoch 6/6, Training Loss: 0.0676\n",
      "Epoch 6/6, Training Loss: 0.0791\n",
      "Epoch 6/6, Training Loss: 0.1718\n",
      "Epoch 6/6, Training Loss: 0.0355\n",
      "Epoch 6/6, Training Loss: 0.0672\n",
      "Epoch 6/6, Training Loss: 0.1880\n",
      "Epoch 6/6, Training Loss: 0.0851\n",
      "Epoch 6/6, Training Loss: 0.0569\n",
      "Epoch 6/6, Training Loss: 0.2298\n",
      "Epoch 6/6, Training Loss: 0.2305\n",
      "Epoch 6/6, Training Loss: 0.1091\n",
      "Epoch 6/6, Training Loss: 0.0512\n",
      "Epoch 6/6, Training Loss: 0.1187\n",
      "Epoch 6/6, Training Loss: 0.2218\n",
      "Epoch 6/6, Training Loss: 0.2385\n",
      "Epoch 6/6, Training Loss: 0.2102\n",
      "Epoch 6/6, Training Loss: 0.2545\n",
      "Epoch 6/6, Training Loss: 0.1216\n",
      "Epoch 6/6, Training Loss: 0.1476\n",
      "Epoch 6/6, Training Loss: 0.0786\n",
      "Epoch 6/6, Training Loss: 0.1240\n",
      "Epoch 6/6, Training Loss: 0.2000\n",
      "Epoch 6/6, Training Loss: 0.1316\n",
      "Epoch 6/6, Training Loss: 0.1229\n",
      "Epoch 6/6, Training Loss: 0.0627\n",
      "Epoch 6/6, Training Loss: 0.1695\n",
      "Epoch 6/6, Training Loss: 0.3436\n",
      "Epoch 6/6, Training Loss: 0.0997\n",
      "Epoch 6/6, Training Loss: 0.0867\n",
      "Epoch 6/6, Training Loss: 0.2097\n",
      "Epoch 6/6, Training Loss: 0.0786\n",
      "Epoch 6/6, Training Loss: 0.2817\n",
      "Epoch 6/6, Training Loss: 0.3730\n",
      "Epoch 6/6, Training Loss: 0.1388\n",
      "Epoch 6/6, Training Loss: 0.1502\n",
      "Epoch 6/6, Training Loss: 0.1692\n",
      "Epoch 6/6, Training Loss: 0.0588\n",
      "Epoch 6/6, Training Loss: 0.0651\n",
      "Epoch 6/6, Training Loss: 0.0822\n",
      "Epoch 6/6, Training Loss: 0.1989\n",
      "Epoch 6/6, Training Loss: 0.0538\n",
      "Epoch 6/6, Training Loss: 0.1119\n",
      "Epoch 6/6, Training Loss: 0.2038\n",
      "Epoch 6/6, Training Loss: 0.0937\n",
      "Epoch 6/6, Training Loss: 0.1393\n",
      "Epoch 6/6, Training Loss: 0.1635\n",
      "Epoch 6/6, Training Loss: 0.1650\n",
      "Epoch 6/6, Training Loss: 0.0944\n",
      "Epoch 6/6, Training Loss: 0.0848\n",
      "Epoch 6/6, Training Loss: 0.2711\n",
      "Epoch 6/6, Training Loss: 0.1817\n",
      "Epoch 6/6, Training Loss: 0.0543\n",
      "Epoch 6/6, Training Loss: 0.2185\n",
      "Epoch 6/6, Training Loss: 0.0584\n",
      "Epoch 6/6, Training Loss: 0.0992\n",
      "Epoch 6/6, Training Loss: 0.1885\n",
      "Epoch 6/6, Training Loss: 0.2540\n",
      "Epoch 6/6, Training Loss: 0.1476\n",
      "Epoch 6/6, Training Loss: 0.1046\n",
      "Epoch 6/6, Training Loss: 0.0438\n",
      "Epoch 6/6, Training Loss: 0.1650\n",
      "Epoch 6/6, Training Loss: 0.1414\n",
      "Epoch 6/6, Training Loss: 0.0471\n",
      "Epoch 6/6, Training Loss: 0.1651\n",
      "Epoch 6/6, Training Loss: 0.1475\n",
      "Epoch 6/6, Training Loss: 0.1712\n",
      "Epoch 6/6, Training Loss: 0.2415\n",
      "Epoch 6/6, Training Loss: 0.1421\n",
      "Epoch 6/6, Training Loss: 0.0770\n",
      "Epoch 6/6, Training Loss: 0.1312\n",
      "Epoch 6/6, Training Loss: 0.0555\n",
      "Epoch 6/6, Training Loss: 0.3462\n",
      "Epoch 6/6, Training Loss: 0.2169\n",
      "Epoch 6/6, Training Loss: 0.1763\n",
      "Epoch 6/6, Training Loss: 0.1341\n",
      "Epoch 6/6, Training Loss: 0.2061\n",
      "Epoch 6/6, Training Loss: 0.1147\n",
      "Epoch 6/6, Training Loss: 0.1352\n",
      "Epoch 6/6, Training Loss: 0.0715\n",
      "Epoch 6/6, Training Loss: 0.0881\n",
      "Epoch 6/6, Training Loss: 0.1852\n",
      "Epoch 6/6, Training Loss: 0.0736\n",
      "Epoch 6/6, Training Loss: 0.2811\n",
      "Epoch 6/6, Training Loss: 0.1442\n",
      "Epoch 6/6, Training Loss: 0.2105\n",
      "Epoch 6/6, Training Loss: 0.1672\n",
      "Epoch 6/6, Training Loss: 0.1523\n",
      "Epoch 6/6, Training Loss: 0.2505\n",
      "Epoch 6/6, Training Loss: 0.1114\n",
      "Epoch 6/6, Training Loss: 0.1198\n",
      "Epoch 6/6, Training Loss: 0.1716\n",
      "Epoch 6/6, Training Loss: 0.2434\n",
      "Epoch 6/6, Training Loss: 0.0826\n",
      "Epoch 6/6, Training Loss: 0.1199\n",
      "Epoch 6/6, Training Loss: 0.2542\n",
      "Epoch 6/6, Training Loss: 0.0523\n",
      "Epoch 6/6, Training Loss: 0.1437\n",
      "Epoch 6/6, Training Loss: 0.3551\n",
      "Epoch 6/6, Training Loss: 0.0425\n",
      "Epoch 6/6, Training Loss: 0.1116\n",
      "Epoch 6/6, Training Loss: 0.1904\n",
      "Epoch 6/6, Training Loss: 0.1232\n",
      "Epoch 6/6, Training Loss: 0.1471\n",
      "Epoch 6/6, Training Loss: 0.1704\n",
      "Epoch 6/6, Training Loss: 0.0985\n",
      "Epoch 6/6, Training Loss: 0.1199\n",
      "Epoch 6/6, Training Loss: 0.0838\n",
      "Epoch 6/6, Training Loss: 0.1153\n",
      "Epoch 6/6, Training Loss: 0.0864\n",
      "Epoch 6/6, Training Loss: 0.2045\n",
      "Epoch 6/6, Training Loss: 0.0906\n",
      "Epoch 6/6, Training Loss: 0.1940\n",
      "Epoch 6/6, Training Loss: 0.0845\n",
      "Epoch 6/6, Training Loss: 0.1002\n",
      "Epoch 6/6, Training Loss: 0.1400\n",
      "Epoch 6/6, Training Loss: 0.2704\n",
      "Epoch 6/6, Training Loss: 0.1085\n",
      "Epoch 6/6, Training Loss: 0.2794\n",
      "Epoch 6/6, Training Loss: 0.2794, Cross-Validation Loss: 0.4696\n"
     ]
    }
   ],
   "source": [
    "# 定义损失函数\n",
    "criterion = nn.CrossEntropyLoss()\n",
    "\n",
    "# 只优化未冻结的参数\n",
    "# optimizer = torch.optim.Adam(filter(lambda p: p.requires_grad, ResNetmodel.parameters()))\n",
    "optimizer = torch.optim.Adam(ResNetmodel.parameters())\n",
    "\n",
    "# 训练模型\n",
    "num_epochs = 6\n",
    "TrainLosses = []\n",
    "CVLosses = []\n",
    "\n",
    "for epoch in range(num_epochs):\n",
    "    ResNetmodel.train()\n",
    "    for images, labels in trLoader:\n",
    "        optimizer.zero_grad()\n",
    "        outputs = ResNetmodel(images)\n",
    "        loss = criterion(outputs, labels)\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "        \n",
    "        print(f'Epoch {epoch+1}/{num_epochs}, Training Loss: {loss.item():.4f}')\n",
    "        \n",
    "    TrainLosses.append(loss.item())\n",
    "\n",
    "    # 计算交叉验证损失\n",
    "    ResNetmodel.eval()\n",
    "    cvloss = 0.0\n",
    "    with torch.no_grad():\n",
    "        for images, labels in cvLoader:\n",
    "            outputs = ResNetmodel(images)\n",
    "            loss = criterion(outputs, labels)\n",
    "            cvloss += loss.item()\n",
    "    CVLosses.append(cvloss / len(cvLoader))\n",
    "\n",
    "    print(f'Epoch {epoch+1}/{num_epochs}, Training Loss: {TrainLosses[-1]:.4f}, Cross-Validation Loss: {CVLosses[-1]:.4f}')\n",
    "\n",
    "# 保存模型\n",
    "torch.save(ResNetmodel.state_dict(), 'mnist_resnet18_finetuned.pth')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 225,
   "id": "85b12838-c04d-40c3-a61c-9b77f1c4e1f0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy on training set: 97.09%\n",
      "Accuracy on cross-validation set: 87.03%\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1cAAAHUCAYAAADWedKvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAC6RElEQVR4nOzdd3gUZdvG4d+m91ACCS2hN+m9iCAgXQEVEKQX+6eI+io2FAtixVcpKr0IKCii9Kb03qTXEEoCBEhCQvrO98dIXiMBQ9qkXOdx7OHsZnbm2pDEvXee535shmEYiIiIiIiISKY4WB1AREREREQkP1BxJSIiIiIikgVUXImIiIiIiGQBFVciIiIiIiJZQMWViIiIiIhIFlBxJSIiIiIikgVUXImIiIiIiGQBFVciIiIiIiJZQMWViIiIiIhIFlBxJSIFhs1mS9ft999/z9R53nnnHWw2W4ae+/vvv2dJhtxu4MCBlC1bNl372u12Zs2aRdu2bfHz88PZ2ZnixYvTpUsXfv31V+x2e/aGzaR9+/Zhs9l47bXXbrvP8ePHsdlsPP/88+k+blo/Z61ataJVq1b/+tzg4GBsNhvTp09P9/luOnToEO+88w7BwcG3fO1u/l2zms1m47nnnrPk3CIiNzlZHUBEJKds2bIl1f333nuPdevWsXbt2lSPV69ePVPnGTp0KB06dMjQc+vVq8eWLVsynSG/iIuLo1u3bqxcuZLHHnuMiRMnEhAQwOXLl1m+fDk9evRg/vz5dO3a1eqot1W7dm3q16/PzJkz+eCDD3B0dLxln2nTpgEwZMiQTJ1rwoQJmXp+ehw6dIh3332XVq1a3VJIvfXWW7zwwgvZnkFEJLdScSUiBUaTJk1S3S9WrBgODg63PP5PN27cwMPDI93nKV26NKVLl85QRh8fn3/NU5CMGDGCFStWMGPGDPr375/qaw8//DCvvPIKsbGxt31+YmIiNpsNJydr/3c3ZMgQnnnmGZYtW0aXLl1SfS05OZmZM2dSv359ateunanzWF2UV6hQwdLzi4hYTcMCRUT+plWrVtSoUYP169fTrFkzPDw8GDx4MADz58+nXbt2lChRAnd3d6pVq8Zrr71GTExMqmOkNVyrbNmydOnSheXLl1OvXj3c3d2pWrUqU6dOTbVfWsMCBw4ciJeXFydOnKBTp054eXlRpkwZXnrpJeLj41M9/9y5czz66KN4e3tTqFAhHn/8cXbs2JGuIWCXL1/mmWeeoXr16nh5eVG8eHFat27Nhg0bUu13c0jZp59+yueff065cuXw8vKiadOmbN269ZbjTp8+nSpVquDq6kq1atWYOXPmHXPcFBYWxuTJk2nfvv0thdVNlSpVolatWsD/vnezZs3ipZdeolSpUri6unLixAkApk6dSu3atXFzc6NIkSJ0796dw4cPpzreqVOneOyxxyhZsiSurq74+/vTpk0b9u7dm7LP2rVradWqFUWLFsXd3Z3AwEAeeeQRbty4cdvX0qdPH9zd3VOuUP3dypUrOX/+/F3/nKUlrWGBFy5coGfPnnh7e+Pr60uvXr0ICwu75bk7d+7kscceo2zZsri7u1O2bFl69+7NmTNnUvaZPn06PXr0AOD+++9PGUp782crrWGBcXFxjBw5knLlyuHi4kKpUqV49tlniYiISLVfen9HMuPq1as888wzlCpVChcXF8qXL88bb7xxy+/Rjz/+SOPGjfH19cXDw4Py5cun/PuAOVT1/fffp0qVKri7u1OoUCFq1arFl19+mWVZRSRv0pUrEZF/CA0NpW/fvvznP//hww8/xMHB/Bzq+PHjdOrUieHDh+Pp6cmRI0cYO3Ys27dvv2VoYVr27dvHSy+9xGuvvYa/vz+TJ09myJAhVKxYkfvuu++Oz01MTOShhx5iyJAhvPTSS6xfv5733nsPX19f3n77bQBiYmK4//77uXr1KmPHjqVixYosX76cXr16pet1X716FYBRo0YREBBAdHQ0P//8M61atWLNmjW3vGkfP348VatWZdy4cYA5JKxTp06cPn0aX19fwHwzPmjQILp27cpnn31GZGQk77zzDvHx8Snf19tZt24diYmJdOvWLV35bxo5ciRNmzZl0qRJODg4ULx4ccaMGcPrr79O7969GTNmDFeuXOGdd96hadOm7Nixg0qVKgHQqVMnkpOT+fjjjwkMDCQ8PJzNmzenFALBwcF07tyZFi1aMHXqVAoVKsT58+dZvnw5CQkJt73C6evryyOPPML8+fO5fPkyxYoVS/natGnTcHNzo0+fPkDmf87+LjY2lrZt23LhwgXGjBlD5cqVWbJkSZo/E8HBwVSpUoXHHnuMIkWKEBoaysSJE2nYsCGHDh3Cz8+Pzp078+GHH/L6668zfvx46tWrB9z+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RERygIorERERERGRHKDiSkREREREJAeouBIREREREckBKq5ERERERERygIorERERERGRHKDiSkREREREJAeouBIREclhJpOJ77//3ugYIiKSy1RciYhIvtKjRw9MJtNNj+bNmxsdTURE8jk7owOIiIjktObNmzNz5sxsyxwdHQ1KIyIijwq1XImISL7j6OiIt7d3toenpyeQ1WUvKiqKyMhInJ2dCQoKYsGCBdm237NnD48//jjOzs4ULlyYPn36cPny5WzrfPnll4SEhODo6IiPjw8DBw7M9vqZM2d48skncXFxoUyZMvz4448P96RFRMRwKq5EROSRM3LkSNq3b8+uXbt45pln6NKlC3v37gUgJSWF5s2b4+npybZt21iwYAG//vprtuIpKiqKAQMG0KdPH/bs2cOPP/5I6dKlsx3jnXfeoVOnTuzevZsWLVrQtWtXzp07l6vnKSIiuctkNpvNRocQERHJKT169ODrr7/Gyckp2/Jhw4YxcuRITCYT/fr1IyoqyvJa7dq1qVatGtOmTWPGjBkMGzaMY8eO4erqCsDSpUtp3bo1J0+epFixYpQoUYKePXsyduzYW2YwmUy8+eabjBkzBoDk5GTc3NxYunSpxn6JiORjGnMlIiL5TkRERLbiCaBQoUKWr+vUqZPttTp16hAdHQ3A3r17qVy5sqWwAggPDyczM5P9+/djMpk4efIkjRo1umOG0NBQy9eurq64ubmRmJj4oKckIiJ5gIorERHJd1xdXW/qpnc3JpMJALPZbPn6Vus4Ozvf0/7s7e1v2jYzM/O+MomISN6iMVciIvLI2bJly03Py5UrB0CFChWIjo4mOTnZ8vrGjRuxsbGhbNmyuLm5ERgYyKpVq3I1s4iIWD+1XImISL6TmppKQkJCtmV2dnYUKVIEgAULFhAWFka9evX45ptv2Lp1K1988QUAXbt25e2336Z79+6MGjWK06dPM2jQILp160axYsUAGDVqFP369cPLy4vIyEguXbrExo0bGTRoUO6eqIiIWBUVVyIiku8sW7YMHx+fbMuCg4PZt28fkDWT37x58+jfvz/e3t588803VKhQAQAXFxeWL1/OSy+9RI0aNXBxcaF9+/Z88MEHln11796dq1evMmXKFIYOHUqRIkXo0KFD7p2giIhYJc0WKCIijxSTycTixYtp27at0VFERCSf0ZgrERERERGRHKDiSkREREREJAdozJWIiDxS1BteREQeFrVciYiIiIiI5AAVVyIiIiIiIjlAxZWIiIiIiEgOUHElIiIiIiKSA1RciYiIiIiI5AAVVyIiIiIiIjlAxZWIiIiIiEgOUHElIiIiIiKSA/4fif6IS/mN53wAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1000x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 计算和打印训练集和交叉验证集的准确率\n",
    "ResNetmodel.eval()\n",
    "with torch.no_grad():\n",
    "    # 训练集准确率\n",
    "    TRCorrect = 0\n",
    "    TRTotal = 0\n",
    "    for images, labels in trLoader:\n",
    "        outputs = ResNetmodel(images)\n",
    "        _, predicted = torch.max(outputs, 1)\n",
    "        _, true_labels = torch.max(labels, 1)\n",
    "        TRTotal += labels.size(0)\n",
    "        TRCorrect += (predicted == true_labels).sum().item()\n",
    "    \n",
    "    TRAccuracy = 100 * TRCorrect / TRTotal\n",
    "    \n",
    "    # Test set accuracy\n",
    "    CVCorrect = 0\n",
    "    CVTotal = 0\n",
    "    for images, labels in cvLoader:\n",
    "        outputs = ResNetmodel(images)\n",
    "        _, predicted = torch.max(outputs, 1)\n",
    "        _, true_labels = torch.max(labels, 1)\n",
    "        CVTotal += labels.size(0)\n",
    "        CVCorrect += (predicted == true_labels).sum().item()\n",
    "    \n",
    "    CVAccuracy = 100 * CVCorrect / CVTotal\n",
    "\n",
    "print(f'Accuracy on training set: {TRAccuracy:.2f}%')\n",
    "print(f'Accuracy on cross-validation set: {CVAccuracy:.2f}%')\n",
    "\n",
    "# 绘制训练和交叉验证损失\n",
    "plt.figure(figsize=(10, 5))\n",
    "plt.plot(range(1, num_epochs+1), TrainLosses, label='Training Loss')\n",
    "plt.plot(range(1, num_epochs+1), CVLosses, label='Cross-Validation Loss')\n",
    "plt.xlabel('Epoch')\n",
    "plt.ylabel('Loss')\n",
    "plt.title('Training and Cross-Validation Loss')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 226,
   "id": "78e1f404-8e37-4fb7-aa88-392fb9bc8adc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy on test set: 85.37%\n"
     ]
    }
   ],
   "source": [
    "ResNetmodel.eval()\n",
    "with torch.no_grad():\n",
    "    TECorrect = 0\n",
    "    TETotal = 0\n",
    "    for images, labels in teLoader:\n",
    "        outputs = ResNetmodel(images)\n",
    "        _, predicted = torch.max(outputs, 1)\n",
    "        _, true_labels = torch.max(labels, 1)\n",
    "        TETotal += labels.size(0)\n",
    "        TECorrect += (predicted == true_labels).sum().item()\n",
    "    TEAccuracy = 100 * TECorrect / TETotal\n",
    "    print(f'Accuracy on test set: {TEAccuracy:.2f}%')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cf24a92b-b852-4119-b8fb-ff6c969795d5",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
